繁体   English   中英

如何添加前导零

[英]How to add leading zeros

我想知道如何在这里获得前导零。 我已经尝试过%H%h但仍然无法使用。任何帮助都将是可贵的。谢谢

SELECT * FROM events WHERE eventDate = DATE_FORMAT(CURDATE(), '%d-%m-%Y') AND time BETWEEN DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 2 HOUR),'%H:%i') AND DATE_FORMAT(DATE_ADD(NOW(), INTERVAL 10 MINUTE),'%H:%i')

更新:它只是在00:00和02:00之间不起作用。有人对它发生的原因有任何想法吗?

如您所说,您的问题仅在00:0002:00之间存在,这是由以下代码引起的:

DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 2 HOUR),'%H:%i')

让我们将代码分成几部分:

select date_format(curdate(), '%d-%m-%Y') as date_only, 
       DATE_FORMAT(DATE_SUB(now(), INTERVAL 2 HOUR),'%H:%i') as min2h,
       DATE_FORMAT(DATE_ADD(now(), INTERVAL 10 MINUTE),'%H:%i') as add10m

# assume now = 2016/10/28 01:00
# the date_only will return 2016/10/28
# the min2h will return 23:00
# the add10m will return 01:10

回到您的查询,您将获得如下查询:

SELECT * FROM events WHERE eventDate = '20161028' AND time BETWEEN '23:00' AND '01:10'

这就是为什么您无法获得该语句不正确的结果的原因。 您应该先将eventDatetime转换为datetime ,以便可以在昨天减去2小时明天再添加10分钟时正确比较datetime

select * from events 
where str_to_date(concat(`eventDate`, " ", `time`), '%d-%m-%Y %H:%i') # convert o datetime, depends on your format
between date_sub(@report_date, interval 2 hour)
and date_add(@report_date, interval 10 minute)

小提琴

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM