我想以yyyy-mm-dd HH:mm:ss格式获取日期

时间:2015-07-31 09:59:22

标签: php sql oracle date-formatting

我现在在PHP编码中使用oracle数据库我想从我的表local_datatime商店以24-DEC-14格式从oracle获取数据。它使用php程序显示在" 2014-12-24 13:31:16"

TO_DATE('2014-12-24 13:31:16', 'YYYY-MM-DD HH:MI:SS')

这是对的???

我使用此查询无效

SELECT DISTINCT
       dri.est_driver_id,
       (dri.driver_first_name || ' ' || dri.driver_last_name) driver_name,
       erd.last_tag_status,
       veh.tag,
       rf.tag_id,
       erd.local_datetime,
       rd.reader_id,
       rf.badge_id
FROM   est_driver dri
       JOIN est_vehicle veh ON dri.est_driver_id = veh.est_driver_id
       LEFT JOIN est_rfid_tag rf ON dri.est_rfid_tag_id = rf.est_rfid_tag_id
       LEFT JOIN est_rfid_reader rd
         ON rf.est_rfid_reader_id = rd.est_rfid_reader_id
       LEFT JOIN est_tag_read erd ON rf.tag_id = erd.tag_id
WHERE  dri.est_driver_id = '211'
AND erd.local_datetime = 'TO_DATE('2014-12-24 13:31:16', 'YYYY-MM-DD HH:MI:SS')'

1 个答案:

答案 0 :(得分:0)

  

在我的表local_datatime以24-DEC-14格式存储

没有。 DATE 未以格式存储,您会看到显示的方式。它存储在7 bytes中, Oracle的专有格式

Byte    Description

1       Century value but before storing it add 100 to it
2       Year and 100 is added to it before storing
3       Month
4       Day of the month
5       Hours but add 1 before storing it
6       Minutes but add 1 before storing it
7       Seconds but add 1 before storing it
  

AND erd.local_datetime =' TO_DATE(' 2014-12-24 13:31:16',' YYYY-MM-DD HH:MI:SS') '

在字符串周围使用单引号,而不是这里的情况。删除单引号。此外,时间元素似乎是您错过的 HH24 格式。

AND erd.local_datetime = TO_DATE('2014-12-24 13:31:16', 'YYYY-MM-DD HH24:MI:SS')

使用 TO_DATE 将字符串转换为日期,使用 TO_CHAR 以所需格式显示日期。