MySQL-查找“-”并智能地添加“ AM”和“ PM”-如果未附加AM,PM

时间:2018-11-15 18:38:09

标签: mysql

我的Sql查询看起来像这样:

SELECT monday 
FROM   `restaurantslive` 

结果是

enter image description here

我想做的是在几分钟后附加“ 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,这不是期望的结果。

1 个答案:

答案 0 :(得分:0)

  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