我是MySQL的新手,我不知道如何解决这个问题
我有一个包含日期时间类型的表。 coloumn的格式为yyyy-mm-dd hh:mm:ss
,与此2015-12-02 20:21:54
一样。我想删除第二个。
如果second <= 30
则删除第二个
2015-12-02 20:00:15 ---> 2015-12-02 20:00
如果second > 30
则分钟+ 1
2015-12-02 20:21:54 ---> 2015-12-02 20:22
有谁知道如何进行这样的查询?
答案 0 :(得分:0)
使用DATE_FORMAT
SELECT
if(DATE_FORMAT('2015-12-02 20:00:55','%s') <= 30,
DATE_FORMAT('2015-12-02 20:00','%Y-%m-%d %H:%i'),
DATE_FORMAT('2015-12-02 20:00','%Y-%m-%d %H:%i') + INTERVAL 1 MINUTE)
答案 1 :(得分:0)
这样的事情有用吗?
SELECT
DATE_FORMAT(
DATE_ADD(
DATE_FORMAT(your_date, '%Y-%m-%d %H:%i:00'),
INTERVAL IF (SECOND(your_date) < 30, 0, 1) MINUTE
),
'%Y-%m-%d %H:%i'
),
答案 2 :(得分:0)
我可能会做这样的事情(未经测试):
SELECT CASE SECOND(@yourDate)&gt;三十 那么DATE_ADD(@yourDate INTERVAL SECOND(@yourDate)SECOND) ELSE @yourDate;
您可能希望阅读mysql手册的date and time functions部分。
答案 3 :(得分:0)
UPDATE table_name SET
date_column =(CASE WHEN SECOND(date_column)&gt; = 30那么DATE_FORMAT(date_column,'%Y-%m-%d%H:%i:00')+ INTERVAL 1 MINUTE
ELSE DATE_FORMAT(date_column,'%Y-%m-%d%H:%i:00')
END);