首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于特定时区将当前时间插入mysql数据库

问基于特定时区将当前时间插入mysql数据库
EN

Stack Overflow用户
提问于 2013-06-27 15:35:08
回答 2查看 4.8K关注 0票数 0

在我的MySql数据库中,post_time字段的值已设置为NOT NULL DEFAULT CURRENT_TIMESTAMP

我使用以下MySql insert语法和html表单从访问者那里收集数据,当访问者提交表单时,文章的日期和时间通过隐藏字段插入到MySql数据库中。

代码语言:javascript
复制
$insertSQL = sprintf("INSERT INTO entry (post, post_time) VALUES (%s, %s)",                     
GetSQLValueString($_POST['post'], "text"),  
GetSQLValueString($_POST['post_time'], "date"));

代码语言:javascript
复制
  <form action="<?php echo $editFormAction;?>" method="post" name="form1" id="form1">
    <table width="50%" align="center">
      <tr valign="baseline">
        <td align="right" nowrap="nowrap">Post:</td>
        <td>
        <textarea name="post" cols="50" rows="5"></textarea>
        </td>
      </tr>
      <tr valign="baseline">
      <td align="right" nowrap="nowrap">
        <input type="hidden" name="post_time" value="<?php echo $_POST['TIMESTAMP DEFAULT CURRENT_TIMESTAMP']; ?>" /> 
         <input type="hidden" name="MM_insert" value="form1" />
        </td>
        <td>
 <input type="submit" name="submit_post" value="Submit Post" />
       </td>
       </tr>
    </table>
  </form>

如何根据共享服务器上的预定义时区(服务器有基于GMT的时区)收集有关日期和时间的数据?

那么,如何执行以下sql语法呢?

编辑:

设time_zone = 'America/New_York';

谢谢,

EN

回答 2

Stack Overflow用户

发布于 2013-06-27 15:39:29

将post_time设置为CURRENT_TIMESTAMP的默认值,MySQL将自动更新该列。除非您想要覆盖它,否则不需要设置它。

设置date_default_timezone_set()对MySQL并不重要--如果MySQL服务器设置了自己的日期,则需要设置MySQL服务器的时区。

最后,您不应该将post_time隐藏字段放在表单中--您的服务器应该(A)生成这个值,或者(B)让MySQL自动生成这个值。

票数 1
EN

Stack Overflow用户

发布于 2013-06-27 15:39:34

您不应该插入这样的值,而应该编写一个执行此操作的查询:

代码语言:javascript
复制
INSERT INTO entry (post, post_time) VALUES (?, UTC_TIMESTAMP())

您要放入的值是如何定义列的,而不是如何插入值的。

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

https://stackoverflow.com/questions/17347386

复制
相关文章

相似问题

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