回答

收藏

Oracle SQL“ DATETIME字段中的ELECT DATE”。

技术问答 技术问答 224 人阅读 | 0 人回复 | 2023-09-14

我有字段REPORTDATE(DATETIME)。在SQL Developer中,我可以看到这种格式的值# o% {$ K# H" Z4 m- `$ u* k
29.10.2013 17:08:08. Y  Q4 ]. k8 H0 ?. q
我发现为了只选择一个日期,我需要执行以下操作:! a0 Z5 w( W2 o1 j- H% U/ ?9 G
SELECT TO_DATE (REPORTDATE,'DD.MON.YYYY') AS my_dateFROM TABLE1但它返回 0RA-01843: not a valid month. f: C$ a) v" L5 C
我希望结果只回到299年.10.2013) `' o7 v: ]9 N# b
                                                                7 U7 S0 I/ k1 S) g  T4 F8 v, ^
    解决方案:                                                               
2 j8 k9 _  B( s- k                                                                TO_DATE(REPORTDATE,“ DD.MON.YYYY”)
/ c" d, D) G5 `& N0 U这是不合理的。您正在将日期再次转换为日期。您可以使用 TO_DATE    将字符串转换为 DATE    。2 [" i  n7 E" p+ e! p# {
我希望结果只回到299年.10.2013* a: ?. ~- W" f1 C8 I8 V
可以用 TRUNC    截断时间元素。如果要用这个值DATE可直接使用计算。' z- H4 u9 d7 I, E/ M; }# g
例如,$ `$ D2 t/ a7 F' c; o
SQL> select TRUNC(SYSDATE) dt FROM DUAL;DT---------12-MAR-15可用于特定格式显示TO_CHAR    和适当的 FORMAT MASK    。
/ ?3 X: [0 e! F5 i, n; HSQL> SELECT to_char(SYSDATE,'DD.MM.YYYY') dt from dual;DT----------12.03.2015SQL>
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则