当字段名称大于或等于 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_DATE
和DATE_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 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章