SELECT jour
FROM reservations
WHERE id_user = 57 AND SUBSTR(jour,10) = '2014_08_14' ORDER BY jour
什么都不返回......
我在数据库中有一个与该编码匹配的记录:
答案 0 :(得分:2)
substr
的第一个参数是从开始的位置。因此,SUBSTR(jour,10)
返回_AM
,您将获得一个空结果集。相反,您应该使用树参数变量:
SELECT jour
FROM reservations
WHERE id_user = 57 AND
SUBSTR(jour, 1, 10) = '2014_08_14' -- Here
ORDER BY jour
为了使您的查询更具可读性并确保不会重复此类错误,您可以使用以下变体:
SELECT jour
FROM reservations
WHERE id_user = 57 AND
SUBSTR(jour FROM 1 FOR 10) = '2014_08_14' -- Here
ORDER BY jour
答案 1 :(得分:2)
您还可以使用LEFT(str,len)功能或SUBSTR(str,pos,len)
试试这个:
SELECT jour
FROM reservations
WHERE id_user = 57 AND LEFT(jour, 10) = '2014_08_14'
ORDER BY jour
或
SELECT jour
FROM reservations
WHERE id_user = 57 AND SUBSTR(jour, 1, 10) = '2014_08_14'
ORDER BY jour
答案 2 :(得分:2)
如果您从预订中选择SUBSTR(jour,10),您会完全得到:' 2014_08_14'?我相信你需要做SUBSTR(jour,1,10)。
答案 3 :(得分:1)
将SUBSTR(jour,10)
替换为SUBSTR(jour,1,10)
。
假设:jour
是varchar
类型列。如果您将日期存储为varchar
,不要这样做!
说明:我的解决方案使用(str,pos,len)
函数的SUBSTR
重载。参数2和3分别是从子串开始的位置和子串的长度。