您好我正在将日期条目插入到具有类型时间戳和字段默认值CURRENT_TIMESTAMP的字段中...我的插入值将如下所示
'.($data[16] == '' ? CURRENT_DATE() : $data[16]).'
如何将CURRENT_DATE()格式化为30-Nov-10以匹配$ data [16]格式(如果不存在)。我还应该将字段类型更改为日期而不是时间戳吗?
答案 0 :(得分:3)
date($format,strtotime(CURRENT_DATE))
适合我。
答案 1 :(得分:1)
CURRENT_DATE()
是一个MySQL函数。您可以将它用作字符串文字:
$sql_date = ($date == '') ?
"DATE_FORMAT(CURRENT_DATE(),'%d-%b-%y')" : "'$date'";
mysql_query("UPDATE foo SET date=$sql_date");
这假设$date
对于SQL插入是安全的。
或者您可以使用PHP:
if (!$date) $date = date('%d-%M-%y');
mysql_query("UPDATE foo SET date='$date'");
就个人而言,我通常会使用PHP解决方案,因为无论您如何构建日期,都可以更容易地使用相同的安全参数占位符(本示例中未使用)使用相同的查询。
我也应该将字段类型更改为日期而不是时间戳
如果时间不相关,那么它应该是一个日期字段。但是,如果它是日期/时间戳字段(而不是文本字段),则应插入YYYY-MM-DD格式,上述代码无用。
也就是说,如果字段是文本,那么上面的代码可能很有用。但是,如果只将日期存储到单个字段中,则应使用日期字段。在这种情况下,插入的格式应始终为YYYY-MM-DD。当您检索数据时,您可以按照想要显示的方式对其进行格式化。
答案 2 :(得分:0)
答案 3 :(得分:0)
这个问题没有意义..我假设您要输出当前日期..在这种情况下,您可以使用以下内容更改格式:
$today = date("M/d/y");
另外,time()会将当前日期输出到unix时间戳
中的第二个日期$today = time();