2015-10-04 177 views
6

我写了下面的代码,但它似乎只插入当前日期而不是当前时间。任何人都知道如何做到这一点?在Oracle SQL中:如何将当前日期和时间插入到表中?

insert into errortable 
(dateupdated,table1id) 
values 
(TO_DATE(sysdate, 'dd/mm/yyyy hh24:mi:ss'),1083); 
+0

你怎么知道它只能插入当前日期?你是通过查看原始表还是尝试使用查询来查看它? – brenners1302

+0

是的,它存储00:00时间;我通过查看表格进行确认。想要存储当前日期和当前时间 – Tikkaty

+0

线索:在Oracle中,当前日期+时间=系统日期。 '从双选择sysdate会产生2015-10-05 09:24:40'。 – RubahMalam

回答

8

它似乎只是因为这是它打印出来。但实际上,你不应该这样写逻辑。这相当于:

insert into errortable (dateupdated, table1id) 
    values (sysdate, 1083); 

将系统日期转换为字符串以将其转换回日期似乎很愚蠢。

如果你想看到完整的日期,那么你可以做:

select TO_CHAR(dateupdated, 'YYYY-MM-DD HH24:MI:SS'), table1id 
from errortable; 
+0

谢谢@gordon。你说sysdate insert应该使用你的方法存储当前日期和当前时间吗? – Tikkaty

+0

@Tikkaty。 。 。是的,'sysdate'有一个时间组件。 –

-3

你可以试试下面的查询:

INSERT 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; 
+2

将sysdate转换为字符串然后返回日期没有意义 – miracle173

相关问题