使用dateadd在SQL Server 2005中需要日期而不是日期时间

时间:2012-08-01 09:03:53

标签: sql-server-2005 dateadd

我有一个查询,它获取程序中字段的日期。这个日期必须修改10年。

我提出的查询是

SELECT DATEADD(yy, +10, '"+thisfield.value+"')

其中'"+thisfield.value+"'来自该计划,并填写为01-08-2012

查询结果为2022-07-31 00:00:00.000。我遇到的问题是我只需要2022-08-01,但格式为01-08-2022,以便我可以使用此结果自动填充其他字段。

在SQL Server 2005中,日期函数不仅仅用于日期时间函数,我只是不需要它。

我希望这很清楚(我第一次发帖)。任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

您可以截断结果,也可以将其转换为DATE

CAST(DATEADD(yy, +10, '"+thisfield.value+"') AS DATE)" 

CONVERT(VARCHAR, DATEADD(yy, +10, '"+thisfield.value+"'), 101)" 

使用样式101的CONVERT格式为mm / dd / yyyy,这恰好是您想要的格式。请记住,您可以根据需要在应用程序中格式化结果以进行显示,这比从SQL Server返回字符串更好。

另请注意,您应该查看参数化查询和/或存储过程。