如何在mysql中添加一天加上时间?

时间:2015-09-29 11:03:02

标签: php mysql codeigniter datetime time

我正在使用CodeIgniter,我需要按日期获取每日销售详情。下面是我的MySQL查询语句,其中我需要每天从15:00:00到第二天早上06:00:00(即今天的日期是29-9-2015)取值,为此我需要数据从29-9-2015 15:00:00到30-9-2015 06:00:00)。

我尝试过很多方法。它的工作时间仅限于15:00:00至24:00:00之间的每日营业时间。如果我给06而不是24,那么这不起作用,因为06是第二天的小时。我不知道如何在MySQL中使用小时数+1。

SELECT DATE_FORMAT( date, '%e' ) AS date, SUM( COALESCE( total_tax, 0 ) ) AS tax1, SUM( COALESCE( total_tax2, 0 ) ) AS tax2, SUM( COALESCE( total, 0 ) ) AS total, SUM( COALESCE( inv_discount, 0 ) ) AS discount, SUM( COALESCE( cash_amt, 0 ) ) AS cash, SUM( COALESCE( master_amt, 0 ) ) AS master, SUM( COALESCE( visa_amt, 0 ) ) AS visa, SUM( COALESCE( nets_amt, 0 ) ) AS nets, SUM( COALESCE( coupon_amt, 0 ) ) AS coupon, SUM( COALESCE( paid, 0 ) ) AS paid FROM sales WHERE (DATE_FORMAT( date, '%Y-%m' ) = '2015-09') AND (DELETE_STATUS != 'Deleted') AND DATE_FORMAT( DATETIME, '%H' ) BETWEEN '15' AND '24' GROUP BY DATE_FORMAT( DATETIME, '%e' );

我已将输出屏幕截图附加了15到24小时的结果。我想你有我的问题。

enter image description here

1 个答案:

答案 0 :(得分:1)

添加您需要的日期:

SELECT DATE_ADD(date,INTERVAL 1 DAY)

添加您需要的小时数:

SELECT DATE_ADD(date,INTERVAL 1 HOUR)

如果要减去而不是添加时间,也可以使用DATE_SUB()而不是DATE_ADD()。

这里有完整的手册:http://dev.mysql.com/doc/refman/5.6/en/date-and-time-functions.html#function_date-add