Sql server 2008 SQLServer2008中的日期时间转换

Sql server 2008 SQLServer2008中的日期时间转换,sql-server-2008,Sql Server 2008,我正在尝试将varchar转换为datetime SELECT CONVERT(DATETIME, CONVERT(VARCHAR, YEAR(GETDATE())) + '/' + CONVERT(VARCHAR, MONTH(GETDATE())) + '/' + CONVERT(VARCHAR, DAY(GETDATE()) + 27), 120) 我期待结果 2012-07-02 00:00:00.000 但是我的脚本抛出了一个错误 请任何人帮帮我 谢

我正在尝试将varchar转换为datetime

SELECT 
    CONVERT(DATETIME, CONVERT(VARCHAR, YEAR(GETDATE())) + '/'  + 
    CONVERT(VARCHAR, MONTH(GETDATE())) + '/' + 
    CONVERT(VARCHAR, DAY(GETDATE()) + 27), 120)
我期待结果

2012-07-02 00:00:00.000
但是我的脚本抛出了一个错误

请任何人帮帮我

谢谢
Gurej

为什么要从
datetime
开始,将其咀嚼到
varchar
,然后返回到
datetime

你真正的问题是,“如何删除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)

错误消息通常被设计为通过提供有用的信息来帮助您。即使你不能从中收集到有用的信息,也许那些帮助你的人可能会。错误消息是怎么说的?很可能poster实际上正在尝试删除时间部分…无论何时使用
CONVERT(VARCHAR…)
,您都应该为
VARCHAR
指定一个长度!否则你可能会得到不愉快的惊喜。。。。。因此,请使用
CONVERT(VARCHAR(50),…)
自由投票并接受: