在mysql数据库中添加到datetime类型列的最佳方法是什么?我尝试使用DATE_ADD但它只在我添加单个日期/时间时才有效:
DATE_ADD(start_date, INTERVAL :dayCount DAY)
这不起作用:
DATE_ADD(DATE_ADD(start_date, INTERVAL :dayCount DAY), INTERVAL :hourCount HOUR)
我尝试按照一些人的建议添加微秒:
$startMicro = strtotime($startDiff->format("%Y-%m-%d %H:%i:%s")) * 1000; // 943920000000
start=DATE_ADD(start, INTERVAL :startMicro MICROSECOND)
我终于完成了它的工作: 在PHP中: $ minutesDiff =(strtotime($ start) - strtotime($ row-> start))/ 60; 在SQL语句中: start = DATE_ADD(start,INTERVAL:minutesDiff MINUTE)
感谢大家的帮助。
答案 0 :(得分:2)
将要添加的总时间转换为您要添加的最小时间增量,因此,而不是1天,1小时,您需要25小时。而不是1小时,1分钟,1秒,你会做3601秒等等。
如果需要,您可以嵌套它们,但语法错误,在第二个INTERVAL
之前缺少逗号,应该是:
DATE_ADD(DATE_ADD(start_date, INTERVAL :dayCount DAY), INTERVAL :hourCount HOUR)
答案 1 :(得分:1)
您可以将此语法用于此目的:
start_date + INTERVAL :dayCount DAY +
INTERVAL :hourCount HOUR +
INTERVAL :minCount MINUTE
INTERVAL类型有年,季,月,周,日,小时,分钟,第二和麦克风。
对于5.6.4之前的MySQL版本,微秒没有任何意义。
见这里:http://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_date-add