首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将日期放入MySQL表中

问将日期放入MySQL表中
EN

Stack Overflow用户
提问于 2012-03-23 01:45:26
回答 4查看 453关注 0票数 0

我有一个很可能非常简单的问题..我正在设计一个简单的博客系统,我试图把当前的日期到表中的博客帖子存储,同时等待管理员的批准。但是我使用的方法将0000-00-00放入date列!我使用的内容如下:

代码语言:javascript
复制
$query = "INSERT INTO blogentry VALUES ('".$mnam."','".date('d-m-Y h:m:s') ."\n"."','".$mcom."','".$approve."')";

我是php的新手,所以经常会遇到这样的错误……但是我似乎不能在谷歌上搜索这个!

谢谢你们!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-03-23 01:50:46

所以最简单的方法就是让MySQL用NOW()函数来处理它:

代码语言:javascript
复制
INSERT INTO blogentry VALUES( ..., NOW(), ... )

另一种选择是通过更改表来使用TIMESTAMPs -将列设置为带有DEFAULT CURRENT_TIMESTAMP的TIMESTAMP类型,您可以在插入时忽略该列-它将自动填充为当前时间。为了跳过列,您需要指定要插入到的列:

代码语言:javascript
复制
INSERT INTO blogentry( column1, column2 ) VALUES( column1value, column2value )

最后,您需要来清理您的输入。最好使用预准备语句和PDO (http://php.net/manual/en/pdo.prepared-statements.php),或者至少使用mysql_real_escape_string。

票数 3
EN

Stack Overflow用户

发布于 2012-03-23 01:50:14

来自DATE, DATETIME上的MySQL手册

date 类型用于具有日期部分但没有时间部分的值。MySQL以'YYYY-MM-DD'格式检索和显示DATE值。支持的范围是从'9999-12-31'.到'1000-01-01'

这意味着您必须以YYYY-MM-DD格式插入日期。您正在使用date('d-m-Y h:m:s')格式。将其更改为date('Y-m-d'),它应该会正确插入。

如果还需要时间,那么需要将列数据类型更改为DATETIME,然后使用date('Y-m-d H:i:s')格式插入。

如前所述,您可以使用INT列类型来代替,并存储Unix时间戳,该时间戳存储在UTC域中,因此更便于移植。然后,您可以轻松地操作时间戳,以任何您想要的方式输出日期。

票数 2
EN

Stack Overflow用户

发布于 2012-03-23 01:48:08

尝试只存储strtotime()结果。它创建了一个唯一的时间戳,然后可以在将来需要它时对其进行解析。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9827691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档