Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql POSTGRES datetime2到时间戳_Postgresql - Fatal编程技术网

Postgresql POSTGRES datetime2到时间戳

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 或 或 这实际上取决于

我正在从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


这实际上取决于您想做什么。

如果您想在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 │
└─────────────────────┘