0

我从SQLite的迁移到PostgreSQL和下面的查询不工作了:查找记录,其中存在时间戳

where("my_timestamp is NOT NULL and my_timestamp != ''") 

我怎样才能找到具有一定(日期时间)的所有记录当前的属性?

回答

3

假设你my_timestamp列是一个真正的timestamp(在ActiveRecord的说法,即t.datetime),那么一个简单的NOT NULL测试就足够了:

where('my_timstamp is not null') 

如果是这种情况,那么您的查询应该给你一个错误如:

invalid input syntax for type timestamp: "" 

指向您的my_timestamp != ''测试。您在SQLite中的空字符串比较工作正常,因为SQLite没有实时时间戳类型,它只是在文本列中使用ISO 8601格式的字符串;这种数据类型问题也是为什么你最终在SQLite中的时间戳列中使用''的原因。

相关问题