POSTGRES datetime2到时间戳

时间:2018-08-28 17:21:58

标签: postgresql

我正在从sql服务器迁移到postgres。 有什么方法可以执行以下操作,并且仍然可以正常工作吗? SELECT CAST('1/1/2018' AS datetime2)我尝试过并失败了

   CREATE TYPE datetime2 AS (date2 TIMESTAMP); --doesn't work

2 个答案:

答案 0 :(得分:2)

如果要在PostgreSQL中将datetime2作为timestamp类型的同义词,请使用domain而不是type:

create domain datetime2 as timestamp;

然后您的演员表将按原样工作:

SELECT CAST('1/1/2018' AS datetime2);
┌─────────────────────┐
│      datetime2      │
├─────────────────────┤
│ 2018-01-01 00:00:00 │
└─────────────────────┘

除名称外,其行为与原始timestamp类型相同。

您在做的问题是创建composite type(具有date2类型的单个字段timestamp的记录),该记录可能也非常有用,但可用于其他类型的任务。 / p>

答案 1 :(得分:1)

我认为您想要的是:

SELECT '1/1/2018' AS TIMESTAMP;

  timestamp 
 -----------
  1/1/2018

SELECT CAST('1/1/2018' AS TIMESTAMP); 

      timestamp      
 ---------------------
  2018-01-01 00:00:00

SELECT CAST('1/1/2018' AS DATE);

    date    
------------
 2018-01-01

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