sql - Confused with DateTime format
问题描述
I have String like 'Wed Jan 22 13:30:52 UTC 2020', need to convert this string To IST format using Sql Server.
I don't aware the about above format.
解决方案
这似乎不是 SQL Server 内部识别的任何格式:
https://docs.microsoft.com/en-us/sql/t-sql/functions/cast-and-convert-transact-sql
所以,你必须自己转换它。假设我们有您的样本日期:
declare @date varchar(50) = 'Wed Jan 22 13:30:52 UTC 2020'
您可以使用子字符串获取日期部分(假设每个日期都使用完全相同的格式):
select substring(@date, 1, 3) as day,
substring(@date, 5, 3) as month,
substring(@date, 9, 3) as year,
substring(@date, 12, 2) as hour,
substring(@date, 15, 2) as minute,
substring(@date, 18, 2) as second,
substring(@date, 25, 4) as utc
现在您只需要从这些日期部分构建一个日期时间值:
select datetimefromparts(convert(int, substring(@date, 9, 3)) + 2000,
case substring(@date, 5, 3) when 'Jan' then 1
when 'Feb' then 2
...
end,
case substring(@date, 1, 3) when 'Mon' then 1
when 'Tue' then 2
when 'Wed' then 3
...
end,
convert(int, substring(@date, 12, 2)),
convert(int, substring(@date, 15, 2)),
convert(int, substring(@date, 18, 2)),
0)
最后,您可以添加AT TIME ZONE 'India Standard Time'
以定义您的 IST 时区。
select datetimefromparts(convert(int, substring(@date, 9, 3)) + 2000,
case substring(@date, 5, 3) when 'Jan' then 1
when 'Feb' then 2
...
end,
case substring(@date, 1, 3) when 'Mon' then 1
when 'Tue' then 2
when 'Wed' then 3
...
end,
convert(int, substring(@date, 12, 2)),
convert(int, substring(@date, 15, 2)),
convert(int, substring(@date, 18, 2)),
0)
AT TIME ZONE 'India Standard Time'
推荐阅读
- javascript - Javascript Atom:数组问题
- c# - salesforce url 无法使用 c# .net 代码建立 SSL 连接
- python - 以有效的方式计算图像像素差异
- angular - 创建新应用程序时出现角度编译错误rxjs
- c - C - 创建一个将数据返回到联合的查找表:按位结构或短结构
- python - Pandas 数据框和转换为 Json
- javascript - 对象解构忽略值
- javascript - Firebase 函数未向设备发送通知
- postgresql - 在谷歌云 SQL Postgres 中恢复 AWS RDS Postgres 快照
- multithreading - 为什么内存重新排序在单核/处理器机器上不是问题?