首页 > 解决方案 > SQL EXTRACT 返回不带冒号的 HOUR_MINUTE

问题描述

我正在尝试格式化我的时间戳日期,以便从中仅获取小时和分钟。问题是返回的格式是奇怪的“825-2100”,而它应该是“8:25-21:00”。所以输出应该带有冒号,但没有。

这是我正在做的选择:

CASE WHEN (TRUE) then CONCAT('Aeg ',EXTRACT(HOUR_MINUTE FROM fp.valid_from), '-', EXTRACT(HOUR_MINUTE FROM fp.valid_to) else 0 end,

为什么我得到没有冒号的格式?

标签: mysqlsql

解决方案


format如果你想要一个字符串,请使用。此外,所有分支都CASE应该返回一个字符串(或NULL):

(CASE WHEN (TRUE) 
      THEN CONCAT('Aeg ', 
                  FORMAT(fp.valid_from, '%H:%i%'),
                  '-'
                  FORMAT(fp.valid_to, '%H:%i%')
                 )
      ELSE ''
 END)

推荐阅读