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 2008及更高版本:
select cast(getdate() as date)
其他回答
您可以使用CONVERT函数仅返回日期。请参阅以下链接:
SQL Server 2000中的日期和时间操作
铸造和转换
使用convert函数的语法为:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
SELECT CONVERT(VARCHAR,DATEADD(DAY,-1,GETDATE()),103) --21/09/2011
SELECT CONVERT(VARCHAR,DATEADD(DAY,-1,GETDATE()),101) --09/21/2011
SELECT CONVERT(VARCHAR,DATEADD(DAY,-1,GETDATE()),111) --2011/09/21
SELECT CONVERT(VARCHAR,DATEADD(DAY,-1,GETDATE()),107) --Sep 21, 2011
我的风格
select Convert(smalldatetime,Convert(int,Convert(float,getdate())))
最简单的方法是使用:选择日期(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
赞成的意见:
不需要varchar<->datetime转换无需考虑区域设置