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
我怎么能得到那个?
当前回答
如果要将结果分配给列或变量,请为其指定DATE类型,并且转换是隐式的。
DECLARE @Date DATE = GETDATE()
SELECT @Date --> 2017-05-03
其他回答
使用FLOOR()-只需削减时间部分。
SELECT CAST(FLOOR(CAST(GETDATE() AS FLOAT)) AS DATETIME)
从SQL Server 2022(16.x)开始,另一个选项是DATETRUNC()函数,使用day作为datepart参数的值:
SELECT DATETRUNC(day, GETDATE());
您可以使用下面的方法,仅用于日期的不同类型的输出
SELECT CONVERT(日期时间,转换(varchar,GETDATE(),103))-----dd/mm/yyyySELECT CONVERT(日期时间,转换(varchar,GETDATE(),101))------mm/dd/yyyySELECT CONVERT(日期时间,转换(varchar,GETDATE(),102))
在这种情况下,仅限日期,我们将运行以下查询:
选择转换(VARCHAR(10),getdate(),111);
如果需要varchar形式的结果,则应执行
SELECT CONVERT(DATE, GETDATE()) --2014-03-26
SELECT CONVERT(VARCHAR(10), GETDATE(), 111) --2014/03/26
这已经在上文中提到。
如果需要日期和时间格式的结果,应使用以下任何查询
仅选择CONVERT(DATETIME,CONVERT)(VARCHAR(10),GETDATE(),111))作为日期2014-03-26 00:00:00.000选择CONVERT(日期时间,转换(VARCHAR(10),GETDATE(),112))作为仅日期2014-03-26 00:00:00.000声明@仅日期DATETIMESET@OnlyDate=DATEDIFF(DD,0,GETDATE())选择@OnlyDate作为OnlyDate2014-03-26 00:00:00.000