我在SQL Server中有一個datetime
列,它給了我這樣的數據10/27/2010 12:57:49 pm
,我想查詢此列,但只讓SQL Server返回日期月和年 - 例如。 2010 10 27
或類似的東西。將SQL Server日期時間轉換爲更短的日期格式
我應該研究哪些功能?
我應該試圖轉換爲另一種日期數據類型嗎?或者簡單地將其轉換爲字符串?
我在SQL Server中有一個datetime
列,它給了我這樣的數據10/27/2010 12:57:49 pm
,我想查詢此列,但只讓SQL Server返回日期月和年 - 例如。 2010 10 27
或類似的東西。將SQL Server日期時間轉換爲更短的日期格式
我應該研究哪些功能?
我應該試圖轉換爲另一種日期數據類型嗎?或者簡單地將其轉換爲字符串?
看起來106是「dd mon yy」 和「dd/MM/yyyy」是103 – nahab 2012-12-07 15:30:10
@nahab您是對的。此外,我必須使用varchar(11)而不是varchar(10)來防止年份縮短(例如,我看到195而不是1953年) – Henrov 2013-06-03 10:31:48
另外,如果要格式化結果,則可以使用101 mm/dd/yyyy – iliketocode 2017-08-11 14:17:04
除了CAST和CONVERT,如果您使用的是SQL Server 2008中,你可以轉換成日期類型(或使用該類型下手),然後有選擇地重新轉換爲varchar:
declare @myDate date
set @myDate = getdate()
print cast(@myDate as varchar(10))
輸出:
2012-01-17
如果您需要在日期格式的結果,你可以使用:
Select Convert(DateTime, Convert(VarChar, GetDate(), 101))
只需添加當日關鍵詞。 例如選擇日期(訂單日期),從訂單中計數(1)where orderdate>'2014-10-01'按日期(訂單日期);
orderdate是日期時間。 此查詢將顯示該日期的訂單而非日期時間。
應用於日期時間列的日期關鍵字會將其更改爲短日期。
在SQL Server 2005,我會用這樣的:
select replace(convert(char(10),getdate(),102),'.',' ')
結果:2015年03 05
對於SQL Server的任何版本:DATEADD(DD,DATEDIFF (dd,0,getdate()),0)
mm/dd/yy的最短日期格式可以通過以下方式獲得:
Select Convert(varchar(8),getdate(),1)
SQL Server的哪個**版**? SQL Server 2008引入了一系列新的與日期和時間相關的數據類型,例如'DATE' - 所以如果你在2008年,你可以使用'SELECT CAST(YourDateTimeColumn AS DATE)',你只需要返回日期 - 沒有時間部分。 – 2012-01-17 20:25:00
看看這篇文章:http://msdn.microsoft.com/en-us/library/ms187928.aspx具體>日期和時間樣式 – Brissles 2012-01-17 20:21:47
@marc_s http://meta.stackoverflow。com/questions/314561/are-votes-to-a-question-comment-higher-valuable-than-votes-for-an-answer – apaul 2016-01-12 21:33:23