【问题标题】:sql statement, now - 6 months in unix/epoch timesql 语句,现在 - Unix/纪元时间 6 个月
【发布时间】:2013-02-19 02:49:41
【问题描述】:

我的数据库在此表中使用纪元时间整数作为日期。

我想做这样的事情:

select * from myTable where date_column > CURRENT_TIMESTAMP - 6 months

我不确定如何动态地从中获得 6 个月。 CURRENT_TIMESTAMP - 6 months 的结果必须是纪元时间

见识见识

【问题讨论】:

  • 你用的是什么版本的sql?
  • postgres,不确定更多细节

标签: sql postgresql date timestamp epoch


【解决方案1】:

在 Postgres 中,我认为正确的语法是:

date_column > EXTRACT('epoch' from (NOW() - interval ' 6 months'))

或类似:

to_timestamp(date_column) > (NOW() - interval ' 6 months'))

您可以阅读date/time functions for Postgres 的完整文档了解更多信息

【讨论】:

  • 好的,我觉得这对我来说更接近标记,但是我的 date_column 将纪元时间存储为整数,c'est la vie,我该如何进行比较? date_column>NOW() - Interval '6 months
  • 谢谢,你能看看这个问题吗? stackoverflow.com/questions/15211408/…
【解决方案2】:

在 MSSQL 中你可以使用

select * 
from myTable 
where date_column > dateadd(month,-6,CURRENT_TIMESTAMP)

【讨论】:

  • 刚刚发现dateadd方法不在postgres里面,我把postgres放到tag里
【解决方案3】:

你可以试试这个

SELECT *
  FROM myTable 
 WHERE TO_TIMESTAMP(date_column) > CURRENT_DATE - INTERVAL '6 MONTH';

这里是sqlfiddle

【讨论】:

    猜你喜欢
    • 2016-11-17
    • 2012-01-30
    • 2018-02-14
    • 2014-09-25
    • 2016-06-15
    • 2011-02-14
    • 1970-01-01
    • 2010-10-06
    • 1970-01-01
    相关资源
    最近更新 更多