【问题标题】:I have date stored in varchar in SQL Server as '19-09-2020' and I want to convert it to '2020-09-19'我将日期存储在 SQL Server 的 varchar 中为“19-09-2020”,我想将其转换为“2020-09-19”
【发布时间】:2020-09-19 08:10:13
【问题描述】:

我在 SQL Server 的 varchar 列中存储了日期为“19-09-2020”。

我想将其转换为“2020-09-19”。

我试过了,但它不起作用:

select convert(varchar, '19-09-2020', 23)

【问题讨论】:

    标签: sql sql-server string datetime


    【解决方案1】:

    您必须指定转换的源格式:

     convert(date, '19-09-2020',105)
    

    如果您真的想要再次使用 VarChar(当然,您不应该),这会导致 DATE:

    convert(varchar(10), convert(date, '19-09-2020',105), 23)
    

    【讨论】:

      【解决方案2】:

      你想要字符串函数吗?

      select concat_ws('-', right(mycol, 4), substring(mycol, 4, 2), left(mycol, 2))
      from mytable
      

      另一方面,如果您想从该字符串生成date,那么:

      select convert(date, mycol, 105) 
      from mytable
      

      【讨论】:

      • 我想将其转换为日期并尝试了您的建议查询,但它给出了以下错误。 select convert(date,[EXPIRY_DAT]) from [dbo].[RNFUNDEDTI] Msg 241, Level 16, State 1, Line 1 从字符串转换日期和/或时间时转换失败。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-28
      • 1970-01-01
      • 2018-12-01
      • 2013-09-06
      • 2020-12-22
      • 2021-08-04
      相关资源
      最近更新 更多