Postgresql POSTGRES datetime2到时间戳
我正在从sql server迁移到postgres。 有没有一种方法,我可以做到以下几点,并让它仍然工作<代码>选择CAST('2018年1月1日'AS datetime 2)我已经尝试过,但失败了Postgresql POSTGRES datetime2到时间戳,postgresql,Postgresql,我正在从sql server迁移到postgres。 有没有一种方法,我可以做到以下几点,并让它仍然工作选择CAST('2018年1月1日'AS datetime 2)我已经尝试过,但失败了 CREATE TYPE datetime2 AS (date2 TIMESTAMP); --doesn't work 我想你想要的是: SELECT '1/1/2018' AS TIMESTAMP; timestamp ----------- 1/1/2018 或 或 这实际上取决于
CREATE TYPE datetime2 AS (date2 TIMESTAMP); --doesn't work
我想你想要的是:
SELECT '1/1/2018' AS TIMESTAMP;
timestamp
-----------
1/1/2018
或
或
这实际上取决于您想做什么。如果您想在PostgreSQL中将
datetime2
作为timestamp
类型的同义词,请使用域而不是类型:
create domain datetime2 as timestamp;
然后,您的演员阵容将按原样工作:
SELECT CAST('1/1/2018' AS datetime2);
┌─────────────────────┐
│ datetime2 │
├─────────────────────┤
│ 2018-01-01 00:00:00 │
└─────────────────────┘
除了名称之外,它将具有与原始时间戳
类型相同的行为
您在问题中所做的是创建(使用
timestamp
类型的单个字段date2
记录),这可能对其他类型的任务也非常有用。您说您的代码失败了,您得到的失败消息是什么?这个答案对我尝试的工作非常有效。
create domain datetime2 as timestamp;
SELECT CAST('1/1/2018' AS datetime2);
┌─────────────────────┐
│ datetime2 │
├─────────────────────┤
│ 2018-01-01 00:00:00 │
└─────────────────────┘