ERROR: function pg_catalog.substring (timestamp without time zone, integer, integer)

本文探讨了在SQL中遇到timestamp类型日期比较错误,通过将timestamp转换为DATE类型进行有效比较,并提供了两种解决方案:substring截取+to_char转换和直接使用DATE函数。提醒读者注意数据库版本对函数适用性的影响。
摘要由CSDN通过智能技术生成

sql中,我想进行日期(精确到日期)比较,首先想到的就是使用substring对时间进行截取,查看其他同事,也是这么写的。

但是,到我这,报错了。

语句类似下面这种

SELECT u.username,l.description,l.ip,SUBSTRING(l.createdate,0,11) as createdate,l.action
FROM n_logs AS l LEFT JOIN n_users AS u ON u.id = l.userid
WHERE SUBSTRING(l.createdate,0,11) >= '2009-06-07'
    AND SUBSTRING(l.createdate,0,11) <= '2009-07-07';

这是因为,保存时间的列使用的是timestamp类型,而现使用的数据库版本,substring方法只接收text类型,可能很多人遇不到这个问题,那是因为使用的版本低。

那怎么解决那?

既然必须text,那就转嘛,直接to_char!这是个解决办法,但不是好办法。

实际上还有更优解,直接使用DATE进行比较:

l.createdate::DATE >= '2009-06-07'::DATE 
AND l.createdate::DATE < '2009-07-08'::DATE;

 

真垃圾,竟然通过文章字数来判断文章质量的好坏。

那请问,多少字数的文章是好文章呐?

真垃圾,竟然通过文章字数来判断文章质量的好坏。

那请问,多少字数的文章是好文章呐?

真垃圾,竟然通过文章字数来判断文章质量的好坏。

那请问,多少字数的文章是好文章呐?

真垃圾,竟然通过文章字数来判断文章质量的好坏。

那请问,多少字数的文章是好文章呐?

真垃圾,竟然通过文章字数来判断文章质量的好坏。

那请问,多少字数的文章是好文章呐?

真垃圾,竟然通过文章字数来判断文章质量的好坏。

那请问,多少字数的文章是好文章呐?

真垃圾,竟然通过文章字数来判断文章质量的好坏。

那请问,多少字数的文章是好文章呐?

真垃圾,竟然通过文章字数来判断文章质量的好坏。

那请问,多少字数的文章是好文章呐?

真是讽刺! 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值