如何从 SQL 中的日期获取字符串类型的月份?

Posted

技术标签:

【中文标题】如何从 SQL 中的日期获取字符串类型的月份?【英文标题】:How to get month in string type from Date in SQL? 【发布时间】:2021-10-24 06:23:58 【问题描述】:

这是我的 SQL 查询。

select orderDate from orders;

由此,我可以得到这样的输出

03-OCT-96

如何从 orderDate 中获取月份(如“OCT”)?

【问题讨论】:

您的 orderDate 数据类型是什么?是 varchar 吗? 【参考方案1】:

试试这个:

select substring(cast(orderDate as string), 4, 7) as month from orders

【讨论】:

【参考方案2】:

也许正确的方法是首先使用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 进行昂贵的转换。

【讨论】:

以上是关于如何从 SQL 中的日期获取字符串类型的月份?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 SQL Server 中的日期获取月份编号(不是月份名称)?

如何在包含单词、三个字母月份和两位数字年份的字符串中搜索月份和年份并将它们转换为 SQL 中的日期?

使用 to_char 函数解析为字符串时,如何从 Oracle 中的日期和月份值中删除前导零?

java中如何将字符串转换成日期型

如何在EXCEL中将字符转成日期 如19970828转成1997-08-28

sql数据表里面取日期的年月日