【发布时间】:2021-10-24 06:23:58
【问题描述】:
这是我的 SQL 查询。
select orderDate from orders;
由此,我可以得到这样的输出
03-OCT-96
如何从 orderDate 中获取月份(如“OCT”)?
【问题讨论】:
-
您的 orderDate 数据类型是什么?是 varchar 吗?
这是我的 SQL 查询。
select orderDate from orders;
由此,我可以得到这样的输出
03-OCT-96
如何从 orderDate 中获取月份(如“OCT”)?
【问题讨论】:
试试这个:
select substring(cast(orderDate as string), 4, 7) as month from orders
【讨论】:
也许正确的方法是首先使用STR_TO_DATE 将您的日期字符串转换为真正的日期,然后使用DATE_FORMAT 以您想要的任何格式提取月份字符串,例如
SELECT DATE_FORMAT(STR_TO_DATE('03-OCT-96', '%d-%b-%Y'), '%M')
-- October
请注意,以%d-%b-%Y 格式将日期存储为文本 通常是不好的做法。考虑使用正式的日期列,以避免使用STR_TO_DATE 进行昂贵的转换。
【讨论】: