sql - SQL Server:将 YYYYMMDD-HHMM 和 YYYYMMDD 转换为 mm/dd/yyyy hh:mm
问题描述
我正在尝试将时间格式从YYYYMMDD-HHMM
和转换YYYYMMDD
为mm/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),
但问题是一些数据没有时间。
解决方案
你可以这样做:
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
推荐阅读
- mysql - SQL 查询未按预期返回
- iframe - 在跨域 iframe 消息中正确预防 XSS
- ocaml - 给定OCaml中的条件,递归地从列表中删除元素?
- java - Elasticsearch:提供了 _id 的批量索引 json
- sql - 要汇总的 Oracle Sql 查询,但让主列仅显示一次
- mysql - 使用 curl(Google Cloud 平台)从存储桶将数据加载到 Cloud SQL
- powershell - 将脚本文件移动到另一个位置后,我的 PowerShell 脚本不起作用?
- java - 保存数据和显示数据时如何防御xss
- python - 1048, "列 'execution_period' 不能为空"
- python - 烧瓶请求csv