SELECT GETDATE()

返回时间:2008-09-22 15:24:13.790

我想要没有时间部分的日期部分:2008-09-22 00:00:00.000

我怎么能得到那个?


当前回答

从SQL SERVER 2012开始,您可以执行以下操作:

选择格式(GETDATE(),'yyyy-MM-dd 00:00:00.000')

其他回答

从SQL SERVER 2012开始,您可以执行以下操作:

选择格式(GETDATE(),'yyyy-MM-dd 00:00:00.000')

SELECT DATEADD(DD, DATEDIFF(DD, 0, GETDATE()), 0)

SELECT DATEADD(DAY, 0, DATEDIFF(DAY,0, GETDATE()))

SELECT CONVERT(DATETIME, CONVERT(VARCHAR(10), GETDATE(), 101))

编辑:前两个方法基本相同,out执行转换为varchar方法。

为什么不使用DATE_FORMAT(your_datetiem_column,'%d-%m-%Y')?

示例:从table_name中选择DATE_FORMAT(some_datetime_column,“%d-%m-%Y”)

您可以通过重新排列“%d-%m-%Y”部分来更改m、d和year的顺序

如果您希望日期显示为2008-09-22 00:00:00.000

然后你可以用

SELECT CONVERT(datetime, (ROUND(convert(float, getdate()-.5),0)))

这将以问题中的格式显示日期

您可以使用CONVERT函数仅返回日期。请参阅以下链接:

SQL Server 2000中的日期和时间操作

铸造和转换

使用convert函数的语法为:

CONVERT ( data_type [ ( length ) ] , expression [ , style ] )