删除SQL命令中的毫秒数

时间:2014-03-04 06:20:46

标签: sql postgresql timestamp

有了这种SQL语句,如何从'date_created'列中删除毫秒?

SELECT sales.id,
       sales.filename,
       account.description customer,
       sales.uploaded,
       sales.date_created
  FROM account
       JOIN salesStore sales
            ON sales.customer_id = account.id
 WHERE sales.date_created::date BETWEEN '2014-02-27' 
                                    AND '2014-03-01'
ORDER BY 
       sales.date_created DESC

4 个答案:

答案 0 :(得分:4)

试试这个

 DATE_TRUNC('second', sales.date_created);

请参阅DATE_TRUNC的文档。

postgresql doc

答案 1 :(得分:3)

The manual:

  

timetimestampinterval接受可选的精确值 p   它指定了保留的小数位数   秒场。默认情况下,精度没有明确的界限。   对于ptimestamp interval 的允许范围为0到6   类型。

您可以强制转换为timestamp(0)(或timestamptz(0))以删除小数秒:

date_created::timestamp(0)

轮次 到完整秒数 - 而不是<{3>} 截断

答案 2 :(得分:2)

MySQL

DATE_FORMAT(sales.date_created, '%Y-%m-%d')

对于其他sql引擎,它可能会有所不同,您必须精确地使用它。

修改:添加%H:%i:%s以保留日期组件。

<强>更新

对于PostgreSQL,请参阅PostgreSQL's Documentation for Data Type Formatting Functions[SO] How to compare dates in datetime fields in Postgresql?,它提供了几种日期比较选项。

答案 3 :(得分:1)

试试这个。这将从日期中删除毫秒部分。

DATEADD(ms, -DATEPART(ms, date), date)