项目中有这样一个需求,就是查询出某一天之内的信息
数据库中存储的数据是精确到秒的,格式就是 yyyy-MM-dd HH:mm:ss 这样的格式
但是查询时是以 “天” 为单位的,当然也不可能让用户去精确到分或者秒
MySQL的 to_days() 方法返回一个天数(年为0以来的天数) (从 0000-01-01 开始计数)
例如: SELECT TO_DAYS('0000-01-01') 的结果是1 ,而SELECT TO_DAYS('0000-00-01') 或者 SELECT TO_DAYS('0000-00-00') 的结果就是 NULL,不是0
所以SQL如下:SELECT * FROM table_name WHERE TO_DAYS(column_name) = TO_DAYS('2019-08-21')
由此可查出2019-08-21这一天内所有的信息
同理可用于处理下一个需求:查询出15天之内的所有数据
SQL如下:SELECT * FROM table_name WHERE TO_DAYS(CURRENT_TIMESTAMP)-15 <= TO_DAYS(column_name)
TO_DAYS(CURRENT_TIMESTAMP)-15为从现在往上数15天所得到的天数,凡是得到的天数大于等于这个数的都是在15天之内的