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_Sql_Postgresql - Fatal编程技术网

转换日期PostgreSQL

转换日期PostgreSQL,sql,postgresql,Sql,Postgresql,全部, 我正在将一些进程从SQLServer(SQL)迁移到ParAccel(PostgreSQL)。 我的一个进程目前正在使用以下转换 Select convert(datetime,convert(varchar,MAX(getdate()), 101),101) 运行此查询后,您将得到:2014-05-07 00:00:00.000 我在postgresql中找到了一个可以完成这项工作的函数。功能是: SELECT date_trunc('day', getdate()); 当您执

全部,

我正在将一些进程从SQLServer(SQL)迁移到ParAccel(PostgreSQL)。 我的一个进程目前正在使用以下转换

Select convert(datetime,convert(varchar,MAX(getdate()), 101),101)  
运行此查询后,您将得到:2014-05-07 00:00:00.000

我在postgresql中找到了一个可以完成这项工作的函数。功能是:

SELECT date_trunc('day', getdate());
当您执行该查询时,您会得到以下信息:5/7/2014 12:00:00 AM

PostgreSQL中是否有一种方法可以获得与SQL相同的结果。所以我想得到
2014-05-07 00:00:00.000


另外,我如何才能直接获取日期,而不是整个
时间戳

如果您想从时间戳获取日期,只需执行以下操作即可

postgres=# select current_timestamp::date;
    now     
────────────
 2014-05-07
(1 row)
有两种方法

  • 首选-使用to_char函数

    postgres=# select to_char(current_timestamp, 'YYYY-MM-DD hh24:mm:ss.ms');
            to_char         
    ─────────────────────────
    2014-05-07 19:05:52.537
    (1 row)
    
  • 或使用datestyle配置变量

    postgres=# set datestyle TO ISO;
    SET
    Time: 0.353 ms
    postgres=# select current_timestamp;
                  now              
    ───────────────────────────────
     2014-05-07 19:12:44.236758+02
    (1 row)
    
    Time: 0.406 ms
    postgres=# set datestyle TO GERMAN ;
    SET
    Time: 0.565 ms
    postgres=# select current_timestamp;
                   now               
    ─────────────────────────────────
     07.05.2014 19:12:51.781772 CEST
    (1 row)
    
    Time: 0.700 ms
    

使用
to_char
功能将日期/时间值格式化为文本()

如果您只对日期部分感兴趣,请将时间戳转换为
date
type

要更改默认日期外观,可以设置:

datestyle = 'iso, mdy'
无论是在会话中还是通过postgresql全局执行。conf

getdate()不是postgresql中的(标准)函数,您确定您的示例吗?我也没有看到date_trunc()使用这种格式,它只是截断数据而不是格式化数据。