我在 SQLite 中工作,所以我只将日期存储为文本。
YYYY-MM-DD hh:mm:ss
据我所知,我应该能够对它们进行排序或相互比较,就像它们不用担心日期函数一样,因为任何递增都是从右开始向左移动,就像数字一样,所有的值都是数字,非数字字符始终是标准化的,我使用的是 24 小时制。
我经常在网上看到人们提到如何将日期作为文本进行转换以进行任何比较,但我不明白为什么他们不能按原样工作,只要它们处于最大 -> 最小的顺序.显然我不会做数学,但是 Select DateTime From Table where DateTime > 2010-04-21 15:34:55
应该是完全可靠的,对吧?
有没有我没有想到的异常?
最佳答案
这很好用。与许多其他数据库一样,SQLite 没有实际的 DATE(或 DATETIME)数据类型。您的选择是将日期存储为可以正确排序的字符串格式(YYYY-MM-DD 或 YYYY-MM-DD hh:mm:ss),或者将日期转换为数字并存储。
如果您使用字符串格式,那么您当然必须包含引号:
SELECT DateTime FROM Table WHERE DateTime > '2010-04-21 15:34:55'
关于string - 可以直接比较存储为字符串/文本的日期吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5446181/