首页 > 解决方案 > SQL Server:将 YYYYMMDD-HHMM 和 YYYYMMDD 转换为 mm/dd/yyyy hh:mm

问题描述

我正在尝试将时间格式从YYYYMMDD-HHMM和转换YYYYMMDDmm/dd/yyyy hh:mm. 我的问题是数据不一致。下面是一些例子:

20200814-1230
20200814-1230
20200814     
20200814

我尝试使用:

    CONVERT(datetime,LEFT(id,8),120) + ' ' +  
    LEFT(RIGHT(ID , 6) ,2) + ':' + 
    SUBSTRING(RIGHT(ID , 6) , 3,2), 

但问题是一些数据没有时间。

标签: sqlsql-servertsql

解决方案


你可以这样做:

declare @dt varchar(100) = '20200814-1230'

select 
  substring(@dt, 5,2) + '/' +
  substring(@dt, 7,2) + '/' +
  substring(@dt, 1,4) +
  case
    when len(@dt) > 8 then
      ' ' +
      substring(@dt, 10,2) + ':' +
      substring(@dt, 12,2)
    else ''
  end

推荐阅读