我必须要锻炼2列之间的日差,其中一列是时间戳,另一列是varchar
时间戳 - 2016-01-25 23:55:23和 varchar - 2015年12月24日
不是日期的最佳格式,但鉴于我无法更改列类型,是否可以计算出这两列之间的天数差异?
非常感谢 最大
答案 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