【问题标题】:Inserting a Date into Database将日期插入数据库
【发布时间】:2011-04-06 10:46:57
【问题描述】:

我正在尝试从表单中检索用户数据并将数据保存到数据库中。我正在尝试检索以下数据: 1) 名字 2) 姓氏 3) 主要 4) 年份

SQL 语法:

CREATE TABLE `tblStudents` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `first_name` varchar(30) NOT NULL,
  `last_name` varchar(50) NOT NULL,
  `major` varchar(40) NOT NULL,
  `year` date NOT NULL,
  PRIMARY KEY (`id`)
)

我可以将除了年份之外的所有内容都保存在数据库中。现在,选择的年份没有保存在数据库中。它看起来像这样:0000-00-00

在表单中,用户从下拉菜单中选择年份。

 <select name="year" id="year">
        <option value="2010">2010-06-12</option>
        <option value="2011">2011-06-12</option>
        <option value="2012">2012-06-12</option>
        <option value="2013">2013-06-12</option>
        <option value="2014">2014-06-12</option>

   </select>

“年份”列的数据类型是日期。我是否需要指定其他内容才能将日期保存在数据库中。

【问题讨论】:

  • 您是否在任何地方遇到异常?
  • 你能发布你用来插入的 PHP/MySQL 代码吗?
  • 问“我做错了什么”而不提供有关您实际在做什么的信息是非常可笑的
  • 请包括您正在使用的更新查询/逻辑,对于初学者。从给出的问题来看,除了下拉框的 HTML 之外,任何数量的事情都可能是错误的。

标签: php sql date


【解决方案1】:

我将选项标签中的值从“2010”更改为“2010-06-12”、“2011-06-12”、2012-06-12、“2013-06-12”...。等等...等等(年-月-日),并且能够将这些值保存到数据库中。

<select name="year" id="year">
        <option value="2010-06-12">2010-06-12</option>
        <option value="2011-06-12">2011-06-12</option>
        <option value="2012-06-12">2012-06-12</option>
        <option value="2013-06-12">2013-06-12</option>
        <option value="2014-06-12">2014-06-12</option>

   </select>

【讨论】:

  • 哦。所以没关系,那么。如果它解释了为什么更改解决了问题......以及实际问题是什么,这个答案会更有用。 ...就此而言,无论选择什么日期,您的解决方案似乎都会插入同一年(2010 年)。这不太可能是正确的行为。
  • 如果您想保存包含月份和日期的完整日期,那么您的解决方案就可以了。如果您只需要年份,而月份和日期并不重要(或始终相同),请按照我提到的 YEAR 类型创建“年份”列。
  • @Kau-Boy 感谢您的建议。是的,所有的日期都是一样的。试图看看我是否可以将年月日保存到数据库中。如果我可以做一个,那么我应该可以做剩下的——所以我只是复制并粘贴了年月日,但只更改了年份以节省时间。但是现在,我知道一个可行的... :) 我会确定日期。但再次感谢。
【解决方案2】:

这可能取决于使用的特定数据库,但通常您将日期指定为文本,例如“2005-10-15”。所以,update mytable set somedate = '2010-10-15' 可以解决问题。

【讨论】:

    【解决方案3】:

    如果您只想保存年份,您可以采用 YEAR 列类型(或者您可以采用 SMALL(4))。

    【讨论】:

    • 感谢您的提示。如果我只是想挽救这一年,我会记住这一点。
    【解决方案4】:

    如果您只需要YEAR,我不同意您最后添加模糊月份和年份的答案。

    我建议更新您的table 结构以将列类型更新为YEAR

    【讨论】:

      猜你喜欢
      • 2016-04-22
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-06
      • 1970-01-01
      相关资源
      最近更新 更多