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
我怎么能得到那个?
当前回答
您可以使用下面的方法,仅用于日期的不同类型的输出
SELECT CONVERT(日期时间,转换(varchar,GETDATE(),103))-----dd/mm/yyyySELECT CONVERT(日期时间,转换(varchar,GETDATE(),101))------mm/dd/yyyySELECT CONVERT(日期时间,转换(varchar,GETDATE(),102))
其他回答
SQLServer2008现在有一个“日期”数据类型,它只包含一个日期,而不包含时间组件。使用SQLServer 2008及更高版本的任何人都可以执行以下操作:
SELECT CONVERT(date, GETDATE())
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
我赞成以下未提及的内容:
DATEFROMPARTS(DATEPART(yyyy, @mydatetime), DATEPART(mm, @mydatetime), DATEPART(dd, @mydatetime))
它也不关心本地或进行双重转换——尽管每个“datepart”可能都做数学运算。因此,它可能比datediff方法慢一点,但对我来说,它更清晰。尤其是当我想按年份和月份分组时(将日期设置为1)。
如果您希望日期显示为2008-09-22 00:00:00.000
然后你可以用
SELECT CONVERT(datetime, (ROUND(convert(float, getdate()-.5),0)))
这将以问题中的格式显示日期
试试看:
SELECT CONVERT(VARCHAR(10),GETDATE(),111)
以上语句将您当前的格式转换为YYYY/MM/DD,请参阅此链接以选择您的首选格式。