-1

我正在尝试将 varchar 转换为日期时间。

SELECT 
    CONVERT(DATETIME, CONVERT(VARCHAR, YEAR(GETDATE())) + '/'  + 
    CONVERT(VARCHAR, MONTH(GETDATE())) + '/' + 
    CONVERT(VARCHAR, DAY(GETDATE()) + 27), 120)

我期待结果

2012-07-02 00:00:00.000

但是我的脚本抛出了一个错误。

请任何人帮助我。

谢谢古雷吉

4

1 回答 1

3

为什么您从 a 开始datetime,将其转换为varchar然后再转换为datetime

您真正的问题是“如何删除日期时间的时间部分?”

如果是这样,您可以这样做:

select DATEADD(day, DATEDIFF(day, 0, getdate()), 0)

或 SQL Server 2008 及更高版本,只需:

select cast(CAST(getdate() as date) as datetime)

甚至,将底层变量/列声明为date,并使用

select CAST(getdate() as date)
于 2012-06-06T08:45:38.243 回答