Часы в месяце - MySQL запрос

0

У меня есть этот запрос, который рассчитан на часы часов в течение месяца, включая текущий месяц на сегодняшний день, как и в этот час. Есть ли более эффективный способ написания этого запроса?

SELECT DATE_FORMAT(FROM_UNIXTIME(created_at), '%Y-%m') as month,
     CASE WHEN DATE_FORMAT(FROM_UNIXTIME(created_at), '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m')
     THEN (DAYOFMONTH(NOW())*24)+ HOUR(NOW()) + (MINUTE(NOW())/60) + (SECOND(NOW())/3600) 
     ELSE DAY(LAST_DAY(DATE_FORMAT(FROM_UNIXTIME(created_at), '%Y-%m-%d')))*24
     END As hours
  FROM table1 
 GROUP 
     BY DATE_FORMAT(FROM_UNIXTIME(created_at), '%Y-%m')

  • 0
    См. Meta.stackoverflow.com/questions/333952/…
  • 0
    Вам нужно или вы рассматривали летнее время?
Показать ещё 1 комментарий
Теги:
hour

1 ответ

0

Вы можете использовать определенную функцию даты и времени mysql как

  SELECT month(FROM_UNIXTIME(created_at)) as month,
        CASE WHEN month(FROM_UNIXTIME(created_at)) = month(now())
                THEN  TIMESTAMPDIFF(HOUR,DATE_FORMAT(NOW() ,'%Y-%m-01'),NOW()) 
                ELSE HOUR(LAST_DAY(DATE_FORMAT(FROM_UNIXTIME(created_at), '%Y-%m-%d')))
  END As hours
  FROM table1 
  GROUP BY month(FROM_UNIXTIME(created_at))

Ещё вопросы

Сообщество Overcoder
Наверх
Меню