SELECT GETDATE()
返回时间:2008-09-22 15:24:13.790
我想要没有时间部分的日期部分:2008-09-22 00:00:00.000
我怎么能得到那个?
SELECT GETDATE()
返回时间:2008-09-22 15:24:13.790
我想要没有时间部分的日期部分:2008-09-22 00:00:00.000
我怎么能得到那个?
当前回答
从SQL SERVER 2012开始,您可以执行以下操作:
选择格式(GETDATE(),'yyyy-MM-dd 00:00:00.000')
其他回答
您可以使用CONVERT函数仅返回日期。请参阅以下链接:
SQL Server 2000中的日期和时间操作
铸造和转换
使用convert函数的语法为:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
如果使用SQL 2008及更高版本:
select cast(getdate() as date)
语法:
SELECT CONVERT (data_type(length)),Date, DateFormatCode)
Ex:
Select CONVERT(varchar,GETDATE(),1) as [MM/DD/YY]
Select CONVERT(varchar,GETDATE(),2) as [YY.MM.DD]
关于日期的所有日期格式代码:
DateFormatCode Format
1 [MM/DD/YY]
2 [YY.MM.DD]
3 [DD/MM/YY]
4 [DD.MM.YY]
5 [DD-MM-YY]
6 [DD MMM YY]
7 [MMM DD,YY]
10 [MM-DD-YY]
11 [YY/MM/DD]
12 [YYMMDD]
23 [yyyy-mm-dd]
101 [MM/DD/YYYY]
102 [YYYY.MM.DD]
103 [DD/MM/YYYY]
104 [DD/MM/YYYY]
105 [DD/MM/YYYY]
106 [DD MMM YYYY]
107 [MMM DD,YYYY]
110 [MM-DD-YYYY]
111 [YYYY/MM/DD]
112 [YYYYMMDD]
SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, @your_date))
例如
SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))
给了我
2008-09-22 00:00:00.000
赞成的意见:
不需要varchar<->datetime转换无需考虑区域设置
简单地说,您可以这样做:
SELECT CONVERT(date, getdate())
SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, @your_date))
SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))
输出为:
2008-09-22 00:00:00.000
或者简单地这样做:
SELECT CONVERT (DATE, GETDATE()) 'Date Part Only'
结果:
Date Part Only
--------------
2013-07-14