SQL - 将时间值插入列中?

12 浏览
0 Comments

SQL - 将时间值插入列中?

我正在使用Oracle SQL,我想将一个时间值(例如15:45或15:45:00)插入到一个数据类型为TIMESTAMP的列中。我尝试了以下方法,但是它报错说这不是一个有效的月份。

INSERT trainTbl(Dest, trainTime)
VALUES
('Waterloo', '15:00:00');

如果有人能给我指点一下方向,我将不胜感激。

谢谢

0
0 Comments

问题原因:Oracle的TIMESTAMP数据类型包含完整的时间和日期信息,无法仅存储时间。要么存储完整的时间和日期,要么为列使用不同的数据类型。

解决方法:可以参考如何仅存储时间而不包含日期的一些选项。然而,如果已经在另一列中存储了日期,最好将这些信息一起存储。Oracle提供这些数据类型是有原因的。

文章如下:

Oracle的TIMESTAMP数据类型包含完整的时间和日期信息。无法仅存储时间,要么存储完整的时间和日期,要么为列使用不同的数据类型。

如果只想存储时间而不包含日期,可以考虑一些选项。然而,如果已经在另一列中存储了日期,最好将这些信息一起存储。毕竟,Oracle提供不同的数据类型是有原因的。

具体的解决方法可以参考stackoverflow上的相关讨论。

0