如何将日期更改为DD/MM/YYY格式,然后使用postgresql转换为文本?


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_ontimestamp(在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

相关内容

最新更新