我想从MySql DataBase获得最少的数据。在我的数据库中,Column的DataType是VARCHAR,我插入的数据就像“2011-03-01 09:00”(yyyy-MM-dd hh-mm)。现在我需要数据库中的最短日期。我怎么能这样做。请帮我。 提前谢谢。
答案 0 :(得分:0)
将col转换为unix时间戳,将当前日期作为unix时间戳,获取差值,使其成为正数,按该数字排序,返回第一行。
SELECT * FROM tablename ORDER BY ABS(UNIX_TIMESTAMP(dateCol) - UNIX_TIMESTAMP(NOW())) ASC LIMIT 1
您的评论中的修改,您需要下一行(按日期排序):
SELECT * FROM tablename WHERE UNIX_TIMESTAMP(dateCol) > UNIX_TIMESTAMP(NOW()) ORDER BY UNIX_TIMESTAMP(dateCol) ASC LIMIT 1
答案 1 :(得分:0)
按日期(字符串)列升序对表进行排序。 将行限制为第一行。得到你的日期列。 那么你的日期最短。
不需要转换。
这是唯一可行的,当你使用这种格式时:yyyy-MM-dd hh-mm 但你这样做了,已经
了select datecol from table order by 1 limit 1,1
示例中的限制可能是错误的 - 我不知道mysql是从1还是0开始