我有一堆记录,其中日期格式为字符串,如“04/17/2009”
我想将它们转换为mysql datetime字段
我打算使用foreach循环读取旧日期值,并将新格式化的值插入到每个记录的新字段中
有什么最好的方法可以转换这个字符串...我认为php可能有自动完成这个任务的方法?
谢谢
首先,将字符串转换为时间戳:
$timestamp = strtotime($string);
那么就做一个date("Y-m-d H:i:s", $timestamp);
月/日/年
的格式,其中月
和日
始终是2位数字,年
是4位数字。UPDATE some_table
SET new_column = STR_TO_DATE(old_column, '%m/%d/%Y')
您可以使用其他格式说明符来支持其他日期格式。
$date = DateTime::createFromFormat('m/d/Y H:i:s', $input_string.' 00:00:00');
$mysql_date_string = $date->format('Y-m-d H:i:s');
$time = strtotime($oldtime);
date()
将其放入正确的格式中。我假设我们是在讨论如何在Bash中完成此操作?
我喜欢使用sed将日期值加载到数组中,这样我就可以分解每个字段并随意处理它。以下示例假设输入格式为mm/dd/yyyy...
DATE=$2
DATE_ARRAY=(`echo $DATE | sed -e 's/\// /g'`)
MONTH=(`echo ${DATE_ARRAY[0]}`)
DAY=(`echo ${DATE_ARRAY[1]}`)
YEAR=(`echo ${DATE_ARRAY[2]}`)
LOAD_DATE=$YEAR$MONTH$DAY
你也可以阅读有关 Linux 中日期命令的内容。它非常有用:http://unixhelp.ed.ac.uk/CGI/man-cgi?date
希望有所帮助... :)
-Ryan
SELECT *
FROM table_name
WHERE CONCAT( SUBSTRING(json_date, 11, 4 ) , '-', SUBSTRING( json_date, 7, 2 ) , '-', SUBSTRING( json_date, 3, 2 ) ) >= NOW();