MySQL查询以计算两天之间的差值,并将该值插入同一表的列中
我认为开始日期为“2014年7月11日凌晨2:00”(解释如下)。我在同一个表中还有另一列,其中的值以“YYYY:DD:MM Min:Sec”格式存储。我想从开始日期中减去这个表中的每个条目,并将其插入到名为“Day”的新列中。以下是我正在尝试执行的查询:MySQL查询以计算两天之间的差值,并将该值插入同一表的列中,mysql,datediff,Mysql,Datediff,我认为开始日期为“2014年7月11日凌晨2:00”(解释如下)。我在同一个表中还有另一列,其中的值以“YYYY:DD:MM Min:Sec”格式存储。我想从开始日期中减去这个表中的每个条目,并将其插入到名为“Day”的新列中。以下是我正在尝试执行的查询: set @start = '2014-07-11 02:00:00'; use rawlog; insert into api_raw(`day`) VALUES (date_diff(DAY, start, #column_name)
set @start = '2014-07-11 02:00:00';
use rawlog;
insert into api_raw(`day`)
VALUES
(date_diff(DAY, start, #column_name)
我不明白我所犯的错误。这一次我错在哪里?任何帮助都将不胜感激。谢谢。使用
DATEDIFF (DATE(@start),DATE(#column_name))
而不是
date_diff(DAY, start, #column_name)
mysql中没有名为
date\u diff
的函数,我想您看到的timestampdiff
timestampdiff也不起作用。请注意,start已定义,不是列名。不过谢谢你的建议。所以你不储存时间?我想我有些地方弄错了。错误显示“错误代码:1054。字段列表中的未知列‘开始’”。此外,我忘了提及。。第二个参数不是coulmn_name,而是start(YYYY:DD:MM:SS)@DotNetNewBie格式的日期时间值。我不明白函数datediff中两个参数的值的格式是“2014-07-11 02:00:0”。在这种情况下,我还必须使用Date()吗?使用@start,它会起作用,我使用Date()函数仅从DATETIME中删除时间。所以别担心。