首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从PostgreSQL中的时间戳提取日期(yyyy/mm/dd)

从PostgreSQL中的时间戳提取日期(yyyy/mm/dd)
EN

Stack Overflow用户
提问于 2011-05-26 10:32:22
回答 7查看 636.6K关注 0票数 315

我只想从PostgreSQL中的时间戳中提取日期部分。

我需要它是PostgreSQL值类型,这样我就可以将它插入到另一个需要DATE值的表中。

例如,如果我有2011/05/26 09:00:00,我想要2011/05/26

我试过了,但我只得到了2011:

代码语言:javascript
运行
复制
timestamp:date
cast(timestamp as date)

我在to_char() to_date()**:**中试用了

代码语言:javascript
运行
复制
SELECT to_date(to_char(timestamp, 'YYYY/MM/DD'), 'YYYY/MM/DD') 
FROM val3 WHERE id=1;

我试着把它变成一个函数:

代码语言:javascript
运行
复制
CREATE OR REPLACE FUNCTION testing() RETURNS void AS '
DECLARE i_date DATE;
BEGIN
    SELECT to_date(to_char(val1, "YYYY/MM/DD"),"YYYY/MM/DD") 
      INTO i_date FROM exampTable WHERE id=1;
    INSERT INTO foo(testd) VALUES (i);
END

从PostgreSQL中的时间戳中提取日期(yyyy/mm/dd)的最佳方法是什么?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-05-26 10:40:09

您可以通过在时间戳上加上::date后缀来将时间戳转换为日期。下面是psql中的时间戳:

代码语言:javascript
运行
复制
# select '2010-01-01 12:00:00'::timestamp;
      timestamp      
---------------------
 2010-01-01 12:00:00

现在我们将其转换为一个日期:

代码语言:javascript
运行
复制
wconrad=# select '2010-01-01 12:00:00'::timestamp::date;
    date    
------------
 2010-01-01

另一方面,你可以使用date_trunc函数。它们之间的区别在于,后者返回与timestamptz相同的数据类型,保持您的时区不变(如果您需要)。

代码语言:javascript
运行
复制
=> select date_trunc('day', now());
       date_trunc
------------------------
 2015-12-15 00:00:00+02
(1 row)
票数 527
EN

Stack Overflow用户

发布于 2011-05-26 10:40:35

使用date函数:

代码语言:javascript
运行
复制
select date(timestamp_field) from table

从字符字段表示到您可以使用的日期:

代码语言:javascript
运行
复制
select date(substring('2011/05/26 09:00:00' from 1 for 10));

测试代码:

代码语言:javascript
运行
复制
create table test_table (timestamp_field timestamp);
insert into test_table (timestamp_field) values(current_timestamp);
select timestamp_field, date(timestamp_field) from test_table;

测试结果:

票数 125
EN

Stack Overflow用户

发布于 2011-05-26 10:39:47

你有没有试过和<mydatetime>::date约会?

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6133107

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档