日期格式和提取日期值
Posted
技术标签:
【中文标题】日期格式和提取日期值【英文标题】:date FORMAT AND EXTRACTING DATE VALUES 【发布时间】:2019-05-07 16:24:51 【问题描述】:我已经尝试转换日期格式,所以我可以提取我想要的年份的值。请帮忙
我已经试过了。日期格式是时间戳。代码现在成功,日期格式为 dd-mon-rr 但是,我无法使用 EXTRACT 函数来获取我想要的年份的值。
MM.NEEDDATE
TO_CHAR((SELECT MM.NEEDDATE FROM DUAL ), 'DD-MON-RR') AS MATERIALNEEDDATE
我尝试这样做是为了获得 2018 年的价值
(EXTRACT(YEAR FROM TO_DATE(MM.NEEDDATE, 'DD-MON-RR'))> 2018)
但我收到类似
的错误ORA-01830: 日期格式图片在转换整个输入字符串之前结束 01830. 00000 - “日期格式图片在转换整个输入字符串之前结束” *原因: *行动:
日期格式转换成功实际格式为时间戳
TO_CHAR((SELECT MM.NEEDDATE FROM DUAL ), 'DD-MON-RR') AS MATERIALNEEDDATE
未能成功提取年份 >2018 的日期 试过了-
(EXTRACT(YEAR FROM TO_DATE(MM.NEEDDATE, 'DD-MON-RR'))> 2018)
错误 ORA-01830: 日期格式图片在转换整个输入字符串之前结束 01830. 00000 - “日期格式图片在转换整个输入字符串之前结束” *原因: *行动:
需要日期列具有多年的日期值,我只想要年份 > 2018 的值。
我可以在不格式化日期的情况下这样做吗?如何?
【问题讨论】:
如果needdate
已经是日期或时间戳,为什么还要调用to_date()
?只需从原始值中提取年份......日期和时间戳都没有任何内在格式,但您可能真的指的是“数据类型”;即便如此,也无需转换/投射。
【参考方案1】:
我认为您不需要to_date()
,因为您在列上使用TO_CHAR()
(从字符串转换为字符串通常不是函数的使用方式)。
你试过了吗?
EXTRACT(YEAR FROM MM.NEEDDATE) > 2018
或者更简单地说:
MM.NEEDDATE >= DATE '2019-01-01'
【讨论】:
是的,我刚刚尝试了 EXTRACT (YEAR FROM MRL.NEEDDATE)>2018),它正在工作。谢谢 我使用 CAST (MRL.NEEDDATE AS DATE) AS NEEDDATE 更改日期格式 @WonderWoman:DATE
列没有“格式”。将 DATE 转换为 DATE 不会改变任何内容。以上是关于日期格式和提取日期值的主要内容,如果未能解决你的问题,请参考以下文章
我们如何仅从 Oracle 中具有各种日期和字符串格式的列中提取日期?