我写了下面的代码,但它似乎只插入当前日期而不是当前时间。有人知道如何做到这一点吗?
insert into errortable
(dateupdated,table1id)
values
(TO_DATE(sysdate, 'dd/mm/yyyy hh24:mi:ss'),1083);
我写了下面的代码,但它似乎只插入当前日期而不是当前时间。有人知道如何做到这一点吗?
insert into errortable
(dateupdated,table1id)
values
(TO_DATE(sysdate, 'dd/mm/yyyy hh24:mi:ss'),1083);
它似乎是这样,因为它打印出来的就是这样。但实际上,您不应该以这种方式编写逻辑。下面是等效的代码:
insert into errortable (dateupdated, table1id)
values (sysdate, 1083);
将系统日期转换为字符串,然后再转换回日期似乎有些愚蠢。
如果您想查看完整的日期,则可以执行以下操作:
select TO_CHAR(dateupdated, 'YYYY-MM-DD HH24:MI:SS'), table1id
from errortable;
sysdate
有一个时间组件。 - Gordon LinoffINSERT INTO errortable (dateupdated,table1id)
VALUES (to_date(to_char(sysdate,'dd/mon/yyyy hh24:mi:ss'), 'dd/mm/yyyy hh24:mi:ss' ),1083 );
查看它的结果:
SELECT to_char(hire_dateupdated, 'dd/mm/yyyy hh24:mi:ss')
FROM errortable
WHERE table1id = 1083;
select sysdate from dual
将产生2015-10-05 09:24:40。 - Hotdin GurningTO_DATE(sysdate...)
是错误的。sysdate
返回一个日期 - 永远不要使用一个日期去调用TO_DATE
,因为它通常不会给出你期望的结果,而且也没有意义。 - Jeffrey Kemp