MySQL从小时:分钟格式获取日期

时间:2016-11-12 19:50:49

标签: mysql datetime

对于10条款,如果我有一个where字符串,如何在%h:%i之前使用该小时/分钟组合获得最后一个datetime

一些虚构的now()来显示预期的行为(select是我需要的神奇函数/组合子,它可以明确地依赖于comb

now()

2 个答案:

答案 0 :(得分:2)

select concat(date(if(time(now()) > '20:20', now(), date_sub(now(), INTERVAL 1 day))), ' 20:20');

答案 1 :(得分:1)

这是一种到达那里的方法(如果函数被相应的函数替换,则以任何语言工作):

SELECT
  CASE WHEN DATE_FORMAT(NOW(), '%H:%i') >= '20:20' THEN
    STR_TO_DATE(CONCAT(DATE_FORMAT(NOW(), '%Y %d %e'), ' ', '20:20'), '%Y %d %e %H:%i')
  ELSE
    DATE_SUB(
      STR_TO_DATE(CONCAT(DATE_FORMAT(NOW(), '%Y %d %e'), ' ', '20:20'), '%Y %d %e %H:%i'),
      INTERVAL 1 DAY
    )
  END latest_valid_date

看起来我发现了一个mySQL错误......其他人正在返回null,虽然它不应该......如果你先减去这一天就行了......但是这仍然可行。