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
我怎么能得到那个?
当前回答
我认为这对你来说是可行的:
CONVERT(VARCHAR(10),Person.DateOfBirth,111) AS BirthDate
//here date is obtained as 1990/09/25
其他回答
SQLServer2008现在有一个“日期”数据类型,它只包含一个日期,而不包含时间组件。使用SQLServer 2008及更高版本的任何人都可以执行以下操作:
SELECT CONVERT(date, GETDATE())
SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, @your_date))
例如
SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))
给了我
2008-09-22 00:00:00.000
赞成的意见:
不需要varchar<->datetime转换无需考虑区域设置
好吧,虽然我迟到了:),这是另一个解决方案。
SELECT CAST(FLOOR(CAST(GETDATE() AS FLOAT)) as DATETIME)
后果
2008-09-22 00:00:00.000
如果您使用的是SQL Server 2012或更高版本,则可以使用以下FORMAT()函数-
SELECT FORMAT(GETDATE(), 'yyyy-MM-dd')
从SQL Server 2022(16.x)开始,另一个选项是DATETRUNC()函数,使用day作为datepart参数的值:
SELECT DATETRUNC(day, GETDATE());
为什么不使用DATE_FORMAT(your_datetiem_column,'%d-%m-%Y')?
示例:从table_name中选择DATE_FORMAT(some_datetime_column,“%d-%m-%Y”)
您可以通过重新排列“%d-%m-%Y”部分来更改m、d和year的顺序