select
dt.client_id,
dt.user_id,,
CAST(DATE(dt.created_on) AS TEXT) as created_on,
dt.created_by,
dt.last_update_on,
dt.last_update_by
from
draft dt
where
dt.user_id = 'ABC'
and CAST(DATE(dt.created_on) AS TEXT) LIKE LOWER('%2020-10-30%')
这里的created_on是日期时间列,需要先格式化为YYYY-MM-DD格式,然后需要转换为文本
输入to_char()
:
to_char(dt.created_on, 'yyyy-mm-dd') as created_on
但是你不应该对DATE(或TIMESTAMP)值使用LIKE。
假设created_on
是timestamp
(在Postgres中没有datetime
数据类型),您可以将其转换为date
以与date
值进行比较:
where cast(dt.created_on as date) = date '2020-10-30'
出于性能原因,在timestamp
列上使用范围条件可能会更好,如果它被索引:
where dt.created_on >= date '2020-10-30'
and dt.created_on < date '2020-10-30' + 1