首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MySQL datetime中插入变量

问在MySQL datetime中插入变量
EN

Stack Overflow用户
提问于 2013-06-04 03:05:23
回答 3查看 1.6K关注 0票数 0

我从用户输入中获取日期和时间,然后尝试将给定的日期和时间插入到MySQL的datetime列中。这个看起来好像不起作用。但是,当我插入NOW()时,它工作得很好。

我有变量:$year、$month、$date、$hour和$minute。

这就是我正在做的:

代码语言:javascript
复制
    $i_date = "$year";
    $month= sprintf("%02s", $month); // These add a leading zero to numbers less than 10
    $i_date .= "$month";
    $date = sprintf("%02s", $date);
    $i_date .= "$date";
    $hour = sprintf("%02s", $hour);
    $i_date .= "$hour";
    $minute = sprintf("%02s", $minute);
    $i_date .= "$minute";
    $i_date .= "00"; // These are for seconds.

这为我提供了正确的日期格式。我已经通过回显它来检查它,然后尝试手动插入到数据库中,它工作了。

但是当我尝试通过PHP将$i_date插入到datetime列中时,它不接受它。

我怎样才能纠正这个错误呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-06-04 03:07:39

我想你漏掉了连字符和冒号。格式应为:

代码语言:javascript
复制
Y-m-d H:i:s // PHP format

例如,现在的日期和时间:

代码语言:javascript
复制
2013-06-03 21:09:00

因此,使用您的代码:

代码语言:javascript
复制
$i_date = sprintf('%d-%02d-%02d %02d:%02d:00', $year, $month, $date, $hour, $minute);
票数 2
EN

Stack Overflow用户

发布于 2013-06-04 03:12:47

您可以简化所有这些重复的sprintfs:

代码语言:javascript
复制
$mysql_date = sprintf('%04d-%02d-%02d %02d:%02d:%02d', $year, $month, $day, $hour, $minute, $second);
票数 1
EN

Stack Overflow用户

发布于 2013-06-04 03:08:06

日期的正确格式是YYYY-MM-DD HH:II:SS,因此假设$year保证为四位数,则应将其更新为

代码语言:javascript
复制
 $i_date = "$year-$month-$date $hour:$minute:00";

在所有的0填充完成之后。

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

https://stackoverflow.com/questions/16904001

复制
相关文章

相似问题

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