格式为01/06/18的两个日期之间的日期差

wi3ka0sx  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(390)

嗨,我想知道两次约会的时间差。我正在从多维数据集获取数据并保存在临时表中。我尝试将日期字段定义为varchar,以及datetime和date我的日期格式是03/04/18,我正在尝试 DATEDIFF(DAY, PAAR.DateReceived, O.DateReceived) 获得天数差。但我得到的错误如下。
当我将临时表中的日期字段定义为datetime或date时,“操作数类型冲突:ntext与datetime不兼容”当我将临时表中的日期字段定义为varchar时,“从字符串转换日期和/或时间时转换失败。”
提前谢谢

omhiaaxx

omhiaaxx1#

我建议你用 str_to_date() 使用适当的格式修饰符将这些字符串转换为日期。

DATEDIFF(str_to_date(PAAR.DateReceived,'%d/%m/%y'), str_to_date(O.DateReceived,'%d/%m/%y'))

请参见:https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_str-迄今为止

ss2ws0br

ss2ws0br2#

试试这个

set @sdate = '01/01/18';
set @edate = '01/26/18';

set @sdate = CONCAT_WS('-',SUBSTR(@sdate FROM 7 FOR 2),SUBSTR(@sdate FROM 1 FOR 2),SUBSTR(@sdate FROM 4 FOR 2));
set @edate = CONCAT_WS('-',SUBSTR(@edate FROM 7 FOR 2),SUBSTR(@edate FROM 1 FOR 2),SUBSTR(@edate FROM 4 FOR 2));

SELECT DATEDIFF(date(@edate), date(@sdate));

相关问题