如何在T-SQL中将字符串转换为Date?

时间:2019-06-12 01:45:25

标签: sql-server tsql casting

我已如下定义我的更新查询,以更新日期列。

declare @fromDate date;
set @fromDate = '2019-04-31'

update [dbo].[sites] 
  set [FromDate]= @fromDate 
where siteid=2832

上面给出了以下错误:

  

从字符转换日期和/或时间时转换失败       字符串。

我在这里做错了什么?

3 个答案:

答案 0 :(得分:3)

4月没有31天,如果您通过无效的日期,则会收到错误消息。尝试使用一些有效日期,例如2019-04-30

答案 1 :(得分:0)

是否可行,很可能取决于您在服务器上运行的日期设置。您可以使用CONVERT(datetime, '2019-04-31'),这会将任何字符串转换为服务器支持的日期时间类型。

答案 2 :(得分:-1)

Source

用法=> SELECT STR_TO_DATE(“ 2017,8,14 10,40,10”,“%Y,%m,%d%h,%i,%s”);

declare @fromDate date;
set @fromDate = STR_TO_DATE("2019,04,31", "%Y,%m,%d");

  update [dbo].[sites] 
  set [FromDate]= @fromDate where siteid=2832

也许这行得通。