Idh*_*dry 4 database postgresql datetime
我有一个输入来搜索要显示的日期,输入可以是日期格式(yyyy 或 yyyy-mm 或 yyyy-mm-dd),例如“2006”或“2017-01”或“2008-10-10” ,我使用这样的查询
SELECT * FROM MEMBER WHERE UPPER(join_date) LIKE UPPER(%".$input."%);
Run Code Online (Sandbox Code Playgroud)
但结果是空的,有没有办法在postgresql中正确使用like语句来表示日期时间
小智 6
LIKE
适用于字符串,不适用于DATE
值。这意味着您必须首先将日期转换为格式正确的字符串值:
SELECT *
FROM member
WHERE to_char(join_date, 'YYYY-MM-DD') LIKE '%.... %';
Run Code Online (Sandbox Code Playgroud)
使用upper(join_date)
会受到邪恶的隐式数据类型转换的影响,并且无法可靠地工作。
另外:upper()
在只有数字的字符串上并没有真正的意义。