我想删除某些年份之间的数据,例如表名为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
答案 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