2014-10-31 74 views
0

我考虑的开始日期为“2014年7月11日2:00 AM”(下文解释)。我在同一个表中有其他列,其中存储的格式为“YYYY:DD:MM Min:Sec”。我想从开始日期中减去此表中的每个条目,并将其插入到名为“Day”的新列中。这里是我试图执行的查询:MySQL查询到两天之间计算差异,将该值插入列在同一个表中

set @start = '2014-07-11 02:00:00'; 

use rawlog; 
insert into api_raw(`day`) 
VALUES 
(date_diff(DAY, start, #column_name) 

我不明白我得到的错误。我在哪里出错了?任何帮助,将不胜感激。谢谢。

+0

没有调用的函数'date_diff'在MySQL中,我觉得你在看'timestampdiff' – 2014-10-31 06:59:26

+0

TIMESTAMPDIFF也不能正常工作。请注意,已经定义了开始并且不是列名。感谢您的建议,但。 – DotNetNewBie 2014-10-31 07:03:17

+0

所以你不存储小时? – Strawberry 2014-10-31 07:40:27

回答

2

使用

DATEDIFF (DATE(@start),DATE(#column_name)) 

而不是

date_diff(DAY, start, #column_name) 
+0

我想我错了一些地方。 “错误代码:1054.未知列'开始'在'字段列表'” – DotNetNewBie 2014-10-31 07:17:03

+0

另外,我忘了提及..第二个参数不是coulmn_name,而是以开始格式的日期时间值(YYYY:DD:MM MM :SS) – DotNetNewBie 2014-10-31 07:19:13

+0

@DotNetNewBie我不明白此评论 – Strawberry 2014-10-31 07:42:56

相关问题