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有这样的冗余?
我不知道,但他们知道。也许比我聪明的人可以回答这个问题。
希望这对某人有所帮助。
其他回答
您可以简单地使用下面的代码在SQL中只获取日期部分,而不获取时间部分:
SELECT SYSDATE TODAY FROM DUAL;
为什么不使用DATE_FORMAT(your_datetiem_column,'%d-%m-%Y')?
示例:从table_name中选择DATE_FORMAT(some_datetime_column,“%d-%m-%Y”)
您可以通过重新排列“%d-%m-%Y”部分来更改m、d和year的顺序
从SQL Server 2022(16.x)开始,另一个选项是DATETRUNC()函数,使用day作为datepart参数的值:
SELECT DATETRUNC(day, GETDATE());
我的风格
select Convert(smalldatetime,Convert(int,Convert(float,getdate())))
只要做到:
SELECT CAST(日期变量为日期)
或使用PostgreSQL:
SELECT date_variable::日期
这就是所谓的打字!