执行以下操作后:
INSERT INTO times_table (start_time, end_time) VALUES (to_date('2/3/2016 12:05',
'MM/DD/YYYY HH24:MI'), to_date('2/3/2016 15:05', 'MM/DD/YYYY HH24:MI'));
PostgreSQL 只显示日期。
如果可能,我是否必须运行单独的选择语句来提取存储在该字段中的时间(即 12:05 和 15:05)?还是在执行查询时完全丢弃时间。
我不想使用时间戳,因为我也想在 Oracle SQL 中执行它。
最佳答案
to_date
返回...日期。惊喜!所以是的,它不会给你时间。
您应该使用 timestamp
数据类型来存储返回时间戳的时间和函数。所以使用 to_timestamp
.
Oracle 也有一个 timestamp
data type和 to_timestamp
function .
一般来说,尝试编写一组适用于多个数据库的 SQL 会导致要么必须编写非常简单的 SQL 而无法利用数据库的任何功能,要么会导致疯狂。
相反,使用 SQL 查询构建器为您编写 SQL,处理兼容性问题,并允许您向现有语句添加子句。例如,Javascript 有 Knex.js Perl 有 SQL::Abstract .
关于PostgreSQL:在同一字段/框中插入日期和时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40639287/