相当于PHP中的mysql CURRENT_DATE()函数

时间:2010-12-01 20:32:27

标签: php mysql datetime

您好我正在将日期条目插入到具有类型时间戳和字段默认值CURRENT_TIMESTAMP的字段中...我的插入值将如下所示

'.($data[16] == '' ? CURRENT_DATE() : $data[16]).'

如何将CURRENT_DATE()格式化为30-Nov-10以匹配$ data [16]格式(如果不存在)。我还应该将字段类型更改为日期而不是时间戳吗?

4 个答案:

答案 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)

没有任何进一步的信息 我只能告诉你的是

你应该查看函数date,它是第二个arg 您可以使用mktime alt创建时间戳。 strtotime

答案 3 :(得分:0)

这个问题没有意义..我假设您要输出当前日期..在这种情况下,您可以使用以下内容更改格式:

$today = date("M/d/y"); 

另外,time()会将当前日期输出到unix时间戳

中的第二个日期
$today = time();