【发布时间】:2014-11-20 10:01:28
【问题描述】:
必须比较两个日期,一个格式为 MM/DD/YYYY,另一个格式为 YYYY/MM/DD HH:MI:SS。
如何做到这一点。我尝试使用 to_timestamp 但它抛出了一个错误,例如:
AND TO_TIMESTAMP(PAYMENT_DATE,'MM/DD/YYYY HH:MI:SS')>=TO_TIMESTAMP( :L_RESEND_DATE,'YYYY/MM/DD HH:MI:SS')
[错误] 执行 (23:27): ORA-01843: not a valid month
【问题讨论】:
-
您是否考虑过使用DATETIME 数据类型来存储您的日期?
-
各个列/参数的数据类型是什么?
date和timestamp都没有格式。只有代表日期的VARCHAR2具有格式。但在VARCHAR2列中存储日期或时间戳数据几乎总是错误的。 -
如果
payment_date是timestamp或date列,使用to_timestamp完全没用,很可能会导致此错误。 -
@GarethD:您正在链接到 MySQL 手册,但 user3809240 使用的是 Oracle(没有
datetime数据类型)。 -
@a_horse_with_no_name 我很糟糕,我看到网页是 `docs.oracle.com" 并且没有费心阅读上面的内容。我没有意识到 Oracle 网站上有 MySQL 文档它....我的观点仍然有效,尽管我可能应该说“你考虑过使用TIMESTAMP 来存储你的日期吗?”