字符串上的SQLite min()和max()(memcmp比较)
我正在检查的代码中,有一些SQLite命令打算查找两个字段的最小值和最大值:字符串上的SQLite min()和max()(memcmp比较),sqlite,Sqlite,我正在检查的代码中,有一些SQLite命令打算查找两个字段的最小值和最大值: 从日历中选择最小值(开始日期)、最大值(结束日期) 开始日期和结束日期的格式类似于YYYYMMDD,这看起来不是SQLite在中识别的格式之一。这里记录的min()和max()表示二进制排序函数用于比较。这里()表示memcmp()用于比较。所以它只是从ascii数字的字符串开始逐字节比较?我不知道memcmp做什么。因此,假设20120506小于20120507,因为6在ascii中是54,7在ascii中是55,所
从日历中选择最小值(开始日期)、最大值(结束日期)
开始日期和结束日期的格式类似于YYYYMMDD,这看起来不是SQLite在中识别的格式之一。这里记录的min()和max()表示二进制排序函数用于比较。这里()表示memcmp()用于比较。所以它只是从ascii数字的字符串开始逐字节比较?我不知道memcmp做什么。因此,假设20120506小于20120507,因为6在ascii中是54,7在ascii中是55,所以20120507更大?事实上,您的日期以SQLite日期和时间函数无法使用的格式存储,这与
min
和max
函数如何对其进行操作无关
如果SQLite将日期视为字符串,那么您的问题的答案是肯定的。如果将日期存储为YYYYMMDD
,则根据列定义,日期实际上可能被视为数字,并进行比较
有关这方面的更多信息,请阅读about,更具体地说是about。我的案例是专栏is TEXT。当然,它们都是数字。