在postgresql中使用两年之间

时间:2014-01-20 05:44:01

标签: sql postgresql

我想删除某些年份之间的数据,例如表名为t1,列id,name date

像这样的值

+--+----+----------+
|id|name|date      |
+--+----+----------+
|1 |Raj |2013-03-01|
+--+----+----------+
|2 |Raja|2014-04-05|
+--+----+----------+

现在我想用年删除这条记录。我试过这个

delete from appsetup.company2 where compno=2 and date_trunc('year',acfrom)
between '2013' and '2015'

显示错误类型为时间戳的无效输入语法:“2013”​​。如何实现这一目标?。

我正在使用postgresql 9.1

3 个答案:

答案 0 :(得分:1)

尝试以YYYY-MM-DD格式输入日期,如下所示:'2015-12-31'

所以,而不是:

between '2013' and '2015'

试试这个:

between '2013-01-01' and '2015-12-31'

有关如何在此输入文字值的更多信息:

http://dev.mysql.com/doc/refman/5.0/en/date-and-time-literals.html

编辑:对不起,我给了你MySQL链接,因为你标记了你的问题“mysql”。这是PostgreSQL的等价物:

http://www.postgresql.org/docs/9.1/static/datatype-datetime.html

答案 1 :(得分:0)

试试这个必须解决你的问题

delete from appsetup.company2 where date_trunc('day',cast(dt_date as timestamp)) between '2013-03-01' and '2014-07-05';

答案 2 :(得分:0)

我得到了答案:它适用于我

delete from appsetup.company2 where cast(to_char(acfrom,'yyyy') as integer)
between 2013 and 2015