【问题标题】:convert date in string format to date datatype sql将字符串格式的日期转换为日期数据类型 sql
【发布时间】:2021-04-10 18:44:32
【问题描述】:

我在名为 Date 的列中有值作为 mmddyy 形式的 nvarachar 数据类型,并且想要将值转换为 yyyy-mm-dd 形式的日期数据类型,我可以使用什么 sql colde 来转换价值。

示例 02121955 -> 1955-02-12

【问题讨论】:

    标签: sql string date ssis


    【解决方案1】:

    你可以使用datefromparts():

    select datefromparts(right(str, 4), left(str, 2), substring(str, 3, 2))
    

    或者将其重构为 yyyymmdd 格式并进行转换:

    select convert(date, left(right(str, 4) + str, 8))
    

    Here 是一个 dbfiddle。

    【讨论】:

      【解决方案2】:

      我发现了一个和你类似的问题已经解决了:https://stackoverflow.com/a/39139155/14940878

      以下是根据您的要求更改的代码:

      declare @date varchar(max)='02121955'

      select convert(varchar(8),cast(CONCAT(SUBSTRING(@date,5,4),'/',SUBSTRING(@date,1,2),'/',SUBSTRING(@date,3,2)) as date),112)as [YYYYMMDD]

      您需要将每个字段合并为一个,然后将其转换为日期时间。

      SUBSTRING(@date,5,4) - Takes the last four characters.

      SUBSTRING(@date,1,2) - Takes the first two.

      SUBSTRING(@date,3,2) - Takes the two in the middle.

      【讨论】:

        【解决方案3】:

        假设是 SQL Server,我想你只需要

        select cast(format(02121955,'##-##-####') as date)
        

        DEMO

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-02-14
          • 2021-11-10
          • 2015-07-13
          • 2013-12-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多