2016-11-16 42 views
0

执行以下之后:PostgreSQL:在相同的字段/框中插入日期和时间?

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只显示日期。

如果可能,我需要运行一个单独的select语句来提取存储在该字段中的时间(即12:05和15:05)吗?或者当查询得到执行时,这些时间会完全丢弃。

我不想使用时间戳,因为我想在Oracle SQL中执行此操作。

+0

'start_time'和'end_time'是什么类型? – Schwern

回答

1

to_date返回...一个日期。惊喜!所以是的,这不会给你时间。

您应该使用timestamp数据类型来存储返回时间戳的时间和函数。所以请使用to_timestamp

Oracle也有一个timestamp data typeto_timestamp function

一般来说,试图编写一组可以与多个数据库一起工作的SQL会导致必须编写非常简单的SQL,这种SQL不利用数据库的任何特性或者疯狂。

相反,使用SQL查询构建器为您编写SQL,处理兼容性问题,并允许您为现有语句添加子句。例如,Javascript有Knex.js,Perl有SQL::Abstract

+1

好的,谢谢。将数据类型从日期重新分配给时间戳,然后将to_date()更改为to_timestamp()函数,对其进行了修复。谢谢。 – gimmegimme

相关问题