当字段名称大于或等于 1200 时添加 1 天日期格式 YYYYMMDD [关闭]

Posted

技术标签:

【中文标题】当字段名称大于或等于 1200 时添加 1 天日期格式 YYYYMMDD [关闭]【英文标题】:add 1 day to date format YYYYMMDD when field name is greater or equal to 1200 [closed] 【发布时间】:2017-02-13 13:08:25 【问题描述】:

我有2个字段dateUS and HourMins(数据类型为varchar

dateUS     | HourMins

20160928   | 0108

20160927  | 2144

20160902 |  0319

20160919  | 1215

输出将是

dateLoc    

20160928

20160928

20160902

20160920

在我的数据库上运行 mysql 查询

【问题讨论】:

请向我们展示您到目前为止所做的尝试。 adding one day to a date的可能重复 请发布您的代码,以便我们指导您.. SELECT CASE WHEN HourMins >= 1200 THEN add (1 day) ELSE (remain) END as dateloc, 【参考方案1】:

借助STR_TO_DATEDATE_FORMAT 函数,您可以实现:

SELECT 
 DATE_FORMAT(STR_TO_DATE(dateUs,'%Y%m%d') + INTERVAL HourMins+0 >= 1200 DAY ,'%Y%m%d') 
  AS dateLoc
FROM your_table 

演示:

SET @str := '20160919';


SET @HOUR := '1215';

SELECT
    (
        STR_TO_DATE(@str, '%Y%m%d') + INTERVAL (@HOUR + 0) >= 1200 DAY
    ) AS date,
    DATE_FORMAT(
        STR_TO_DATE(@str, '%Y%m%d') + INTERVAL (@HOUR + 0) >= 1200 DAY,
        '%Y%m%d'
    ) AS expectedFormat;

输出:

date         expectedFormat
2016-09-20     20160920

【讨论】:

以上是关于当字段名称大于或等于 1200 时添加 1 天日期格式 YYYYMMDD [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

计算海拔大于等于1100,小于1200之间的交通用地的面积

如何更新数据库等于日期等于5天前的当前日期

oracle查询日期字段大于某个日期值时sql语句怎么写

vue element ui 开始日期小于或等于结束日期

论坛日期 基于 if 语句匹配 1 of 12 的响应等于或大于比较(参数)

Laravel 雄辩,其中日期等于或大于 DateTime