SQL 服务器从自定义格式的字符串中获取日期时间
SQL SERVER get datetime from a custom formatted string
我有一个 table,其中包含一些存储为文本的 DateTime 值,我想遍历它们并为每个值获取 DateTime 对象。
下面是一些我需要转换的数据示例。
- 2019 年 11 月 26 日星期二 - 09:00 上午
- 2019 年 11 月 25 日星期一 - 11:20 上午
- 06 2019 年 12 月星期五 - 10:00 上午
- 2019 年 12 月 22 日星期日 - 01:05 下午
- 2019 年 12 月 22 日星期日 - 04:00 下午
- 2019 年 12 月 22 日星期日 - 02:30 下午
- 2019 年 12 月 23 日星期一 - 11:00 上午
我尝试使用 SQL 内置函数(例如转换、转换...)但没有用。
删除工作日的名称和连字符,它应该可以工作:
WITH cte
AS
(
SELECT DATENAME(weekday,datefromparts(2020,1,dow.dow)) as WeekDay
FROM (values (1),(2),(3),(4),(5),(6),(7) ) dow(dow)
)
SELECT TRY_CAST(REPLACE(REPLACE(t.dateInTxt,'-',''),cte.WeekDay,'') as datetime),t.dateInTxt
FROM mytable t
JOIN cte
ON t.dateInTxt LIKE '%'+cte.WeekDay +'%'
我有一个 table,其中包含一些存储为文本的 DateTime 值,我想遍历它们并为每个值获取 DateTime 对象。
下面是一些我需要转换的数据示例。
- 2019 年 11 月 26 日星期二 - 09:00 上午
- 2019 年 11 月 25 日星期一 - 11:20 上午
- 06 2019 年 12 月星期五 - 10:00 上午
- 2019 年 12 月 22 日星期日 - 01:05 下午
- 2019 年 12 月 22 日星期日 - 04:00 下午
- 2019 年 12 月 22 日星期日 - 02:30 下午
- 2019 年 12 月 23 日星期一 - 11:00 上午
我尝试使用 SQL 内置函数(例如转换、转换...)但没有用。
删除工作日的名称和连字符,它应该可以工作:
WITH cte
AS
(
SELECT DATENAME(weekday,datefromparts(2020,1,dow.dow)) as WeekDay
FROM (values (1),(2),(3),(4),(5),(6),(7) ) dow(dow)
)
SELECT TRY_CAST(REPLACE(REPLACE(t.dateInTxt,'-',''),cte.WeekDay,'') as datetime),t.dateInTxt
FROM mytable t
JOIN cte
ON t.dateInTxt LIKE '%'+cte.WeekDay +'%'