将星期几名称转换为星期几 Vertica
Convert day of week name to day of week number Vertica
- 通过这种方式 -
SELECT TO_CHAR(NOW(), 'DAY');
我可以获得星期几的名称(例如星期一)。
- 使用
SELECT dayofweek(NOW());
我可以获得星期几。 (例如 1)
- 问题:
如何将星期几名称转换为星期几。 (例如周一 -> 1)
SMTH like
TO_NUMBER('MONDAY', 'DAY'); --> 1
(举个例子,不要工作)
可能case
表达式是最简单的方法:
(case ?
when 'MONDAY' then 1
when 'TUESDAY' then 2
when 'WEDNESDAY' then 3
when 'THURSDAY' then 4
when 'FRIDAY' then 5
when 'SATDAY' then 6
when 'SUNDAY' then 7
end)
或者数组更简洁:
array_find(?,
array['MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SUNDAY']
) + 1
- 通过这种方式 -
SELECT TO_CHAR(NOW(), 'DAY');
我可以获得星期几的名称(例如星期一)。 - 使用
SELECT dayofweek(NOW());
我可以获得星期几。 (例如 1) - 问题:
如何将星期几名称转换为星期几。 (例如周一 -> 1)
SMTH like
TO_NUMBER('MONDAY', 'DAY'); --> 1
(举个例子,不要工作)
可能case
表达式是最简单的方法:
(case ?
when 'MONDAY' then 1
when 'TUESDAY' then 2
when 'WEDNESDAY' then 3
when 'THURSDAY' then 4
when 'FRIDAY' then 5
when 'SATDAY' then 6
when 'SUNDAY' then 7
end)
或者数组更简洁:
array_find(?,
array['MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SUNDAY']
) + 1