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
我怎么能得到那个?
当前回答
哇,让我数一数你能做到这一点的方法。(无意双关)
为了以这种格式获得您想要的结果:
2008-09-22
这里有几个选项。
SELECT CAST(GETDATE() AS DATE) AS 'Date1'
SELECT Date2 = CONVERT(DATE, GETDATE())
SELECT CONVERT(DATE, GETDATE()) AS 'Date3'
SELECT CONVERT(CHAR(10), GETDATE(), 121) AS 'Date4'
SELECT CONVERT(CHAR(10), GETDATE(), 126) AS 'Date5'
SELECT CONVERT(CHAR(10), GETDATE(), 127) AS 'Date6'
所以,我建议你选择一个你满意的方法,并在所有的桌子上使用这种方法。
所有这些选项都以完全相同的格式返回日期。为什么SQL Server有这样的冗余?
我不知道,但他们知道。也许比我聪明的人可以回答这个问题。
希望这对某人有所帮助。
其他回答
我知道这很古老,但我看不出哪里有人这样说。据我所知,这是ANSI标准。
SELECT CAST(CURRENT_TIMESTAMP AS DATE)
如果微软也能支持ANSI标准CURRENT_DATE变量,那就好了。
为什么不使用DATE_FORMAT(your_datetiem_column,'%d-%m-%Y')?
示例:从table_name中选择DATE_FORMAT(some_datetime_column,“%d-%m-%Y”)
您可以通过重新排列“%d-%m-%Y”部分来更改m、d和year的顺序
试试看:
SELECT CONVERT(VARCHAR(10),GETDATE(),111)
以上语句将您当前的格式转换为YYYY/MM/DD,请参阅此链接以选择您的首选格式。
如果需要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
我常用的方法是在没有时间的情况下约会。。
SELECT CONVERT(VARCHAR(MAX),GETDATE(),103)
SELECT CAST(GETDATE() AS DATE)