Mysql时间戳和Var

时间:2016-01-26 15:36:16

标签: mysql date timestamp varchar difference

我必须要锻炼2列之间的日差,其中一列是时间戳,另一列是varchar

时间戳 - 2016-01-25 23:55:23和 varchar - 2015年12月24日

不是日期的最佳格式,但鉴于我无法更改列类型,是否可以计算出这两列之间的天数差异?

非常感谢 最大

1 个答案:

答案 0 :(得分:1)

PHP中的Dialog类非常强大且灵活,特别是使用DateTime方法非常愉快地加载不同格式的日期。与createFromFormat()方法一起使用,你应该得到你想要的。

这是一个例子

->diff()

另外,当你查询这个奇怪的varchar字段时,你可以让MYSQL做繁重的工作并使用它的<?php $ts = '2016-01-25 23:55:23'; $vc = '24/12/2015'; $tsdate = DateTime::createFromFormat('Y-m-d H:i:s', $ts); $vcdate = DateTime::createFromFormat('d/m/Y', $vc); $interval = $vcdate->diff($tsdate); echo $interval->format('%R%a days'); 函数

STR_TO_DATE()

然后,当您在PHP中看到它时,它将转换为MySQL SELECT tsCol, STR_TO_DATE(varcharColumn, '%d/%m/%Y) as otherDate

或者更进一步让MySQL完成你可以使用MySQL DATETIME

的所有工作
TIMESTAMPDIFF