gpt4 book ai didi

mysql - 如何从工作日名称获取日期格式?

转载 作者:行者123 更新时间:2023-11-29 17:06:05 24 4
gpt4 key购买 nike

工作日

Sunday=1
Monday=2
Tuesday=3
Wednesday=4
Thursday=5
Friday=6
Saturday=7

我有当前的字符串

Saturdays at 13:35 PDT

我想将其INSERT插入到DATETIME列中,使其日期和时间仅像这样:

     DATETIME
0000-01-01 13:35:00 //Sundays at 13:35 PDT
0000-01-02 13:35:00 //Mondays at 13:35 PDT
0000-01-03 13:35:00 //Tuesdays at 13:35 PDT
0000-01-04 13:35:00 //Wednesdays at 13:35 PDT
0000-01-05 13:35:00 //Thursdays at 13:35 PDT
0000-01-06 13:35:00 //Fridays at 13:35 PDT
0000-01-07 13:35:00 //Saturdays at 13:35 PDT
<小时/>

我考虑过使用以下内容

INSERT into TABLE(column) VALUES (STR_TO_DATE('Saturdays at 13:35', '%Ws at %H:%i'))

但它总是给我NULL值,另外我想将时区PDT更改为UTC>,但我不知道如何使用 STR_TO_DATE() 函数

最佳答案

在工作日使用 CASE 可能会有所帮助。
然后CONCAT时间到了。

示例:

SELECT 
CONCAT(
case SUBSTRING(weekday_at_time, 1, LOCATE(' ',weekday_at_time)-1)
when 'Sundays' then '0000-01-01 '
when 'Mondays' then '0000-01-02 '
when 'Tuesdays' then '0000-01-03 '
when 'Wednesdays' then '0000-01-04 '
when 'Thursdays' then '0000-01-05 '
when 'Fridays' then '0000-01-06 '
when 'Saturdays' then '0000-01-07 '
end,
STR_TO_DATE(SUBSTRING(weekday_at_time,length(weekday_at_time)-4,5),'%H:%i')
) AS "DATETIME"
FROM (
-- Sample data
select 'Sundays at 14:45' as weekday_at_time
union all select 'Saturdays at 13:35'
) AS Samples

在 SQL Fiddle 上测试 here

但这假设您将其更新为 VARCHAR 列。

因为将“0000”年的日期时间戳转换为日期时间可能会产生不同的结果。

例如:

select cast('0000-01-01 13:35:00' as datetime) as dt

返回:

-0001-12-30T13:35:00Z

如果您要更新为 DATETIME,将年份更改为“1900”可能会更安全。
在 SQL Fiddle 上测试 here

关于mysql - 如何从工作日名称获取日期格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52048483/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com