代码之家  ›  专栏  ›  技术社区  ›  Ratha

如何在SQL中将字符串转换为日期?

  •  0
  • Ratha  · 技术社区  · 6 年前

    我定义了如下更新查询来更新 日期 列。

    declare @fromDate date;
    set @fromDate = '2019-04-31'
    
    update [dbo].[sites] 
      set [FromDate]= @fromDate 
    where siteid=2832
    

    上面给出了以下错误:

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

    我在这里做错什么了?

    3 回复  |  直到 6 年前
        1
  •  3
  •   Raka    6 年前

    四月没有31天,如果你通过无效日期,你会得到错误。尝试一些有效的日期,比如2019-04-30

        2
  •  0
  •   someRandomSerbianGuy    6 年前

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

        3
  •  -1
  •   Furkan    6 年前

    Source

    用法=>选择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
    

    也许这会奏效。