查找“-”并智能地附加“am”和“pm”-如果不附加am和pm

8oomwypt  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(274)

我的sql查询如下所示:

SELECT monday 
FROM   `restaurantslive`

结果是

我要做的是在会议记录后面加上“am”和“pm”,例如

6:30–10:30AM, 11:30AM–2PM, 5:30–10:30PM

我试着把这张唱片做成下面的样子

6:30AM–10:30AM, 11:30AM–2PM, 5:30PM–10:30PM

请注意,分别在6:30和5:30之后添加了am和pm。
我试过的是这个

SELECT CONCAT(Monday , 'AM'), FROM `RestaurantsLIVE`

但问题是它最后附加了am,这并不是期望的结果。

4ioopgfo

4ioopgfo1#

select case when right(last,2) = 'AM' then concat(first,'AM-',last)
  when right(last,2) = 'PM' then concat(first,'PM-',last) else concat(first,last) 
  end as monday
        from(
        select if(
                locate('–', monday) > 0,
                substring(monday, 1, locate('–', monday) - 1),
                monday
            ) as first,
            if(
                locate('–', monday) > 0,
                substring(monday, locate('–', monday) + 1),
                null
            ) as last from restaurantslive
            ) temp;

请检查此查询。子查询使用“-”将字符串拆分为两个,然后相应地计算am或pm

相关问题