将时间转换为SQL的范围

时间:2019-05-16 11:16:11

标签: mysql sql datetimerangefield

我有一个日期时间字段,显示为例如2019-05-13 13:01:39

我希望它在SQL中以1-2pm13-14pm的形式出现。

同样,2019-05-03 19:31:31应该显示为7-819-20

在SQL中使用查询是否有可能?

2 个答案:

答案 0 :(得分:2)

您可以使用EXTRACT的{​​{1}}函数来获取日期或时间的任何部分。访问Here了解更多详情

MySql

答案 1 :(得分:1)

这是使用DATE_FORMAT和DATE_ADD和24小时制的解决方案

SELECT CONCAT(DATE_FORMAT('2019-05-03 19:31:31', '%H'), '-', 
              DATE_FORMAT(DATE_ADD('2019-05-03 19:31:31', INTERVAL 1 HOUR), '%H'))

和具有12小时制的相同解决方案

SELECT CONCAT(DATE_FORMAT('2019-05-03 19:31:31', '%h'), '-',
              DATE_FORMAT(DATE_ADD('2019-05-03 19:31:31', INTERVAL 1 HOUR), '%h %p'))

这将输出

  

小时
  19-20
  下午07-08

有趣的是,如果时间是晚上11点之后,则会提供以下输出

  

小时
  23-00
  上午11点至12点

这比23-24好吗?或者这只是显示时间的一种不好方法?也许对于12个小时的时钟,每次过后最好有AM / PM

  

11 PM-12 AM