我正在使用SQLite,我想让所有在01-01-2000
和12-12-2010
之间进行DOB的学生。我的数据库中的日期采用TEXT
和mm-dd-YY
格式。我这样做了:
SELECT * FROM student_details
WHERE strftime('%m-%d-%Y', studentDob)
BETWEEN strftime('%m-%d-%Y', '01-01-2000')
AND strftime('%m-%d-%Y', '12-12-2010')
但即使我的数据库中有记录,它也没有给出任何结果。 如果我的查询有任何错误,请帮助我。它甚至没有产生任何错误。
答案 0 :(得分:3)
美国日期格式本质上是不可靠的,因为单位的排列不是一直增加或一致递减。但是,ISO(日语)样式日期可以按字母顺序排序,使其成为人类可读(和计算机可排序)表格中最优越的。
如果没有实用的日期格式,您必须将该文本字符串转换为可排序的内容,例如日语表单文本字符串或整数。
对于SQLite,请参阅Date and Time Functions。
要在SQLite中解析日期字符串,请参阅此StackOverflow answer。