0

希望你好专家!我只想知道我的表有什么问题,我通过使用 php 和以下指令创建了表 'table1'。

<?php
        // use mysql connect

    $num="create table table1
     (student_id int primary key NOT NULL AUTO_INCREMENT,
       name varchar (10) NOT NULL,
          math varchar (20) NOT NULL,
          english varchar (10) NOT NULL,
     date DATE,
      month DATE,
         year DATE )";


   mysql_query($num,$con);
     mysql_close($con);
        ?> 

我的问题是为什么?当我输入日期、月份、年份时,它会显示类似这样的内容

    student_id name   math  english date       month        year
    1          simon  100   100     0000-00-00  0000-00-00  0000-00-00

我希望这是

    student_id name   math  english date  month   year
    1          simon  100   100     1     March   2013

可能是这样的。

    <?php
    // use mysql connect

$num="create table table1
 (student_id int primary key NOT NULL AUTO_INCREMENT,
   name varchar (10) NOT NULL,
      math varchar (20) NOT NULL,
      english varchar (10) NOT NULL,
 date DATE strtotime,
  month DATE strtotime,
     year DATE strtotime)";


         mysql_query($num,$con);
                mysql_close($con);
    ?> 
4

2 回答 2

2

因为你告诉它存储一个日期?

日期以YYYY-MM-DD. 然后,您使用 PHPstrtotime将其转换为 UNIX 时间戳,然后date以您选择的格式输出(类似于d/M/Y“1/Mar/2013”​​)

于 2013-11-08T01:16:40.650 回答
0

您只需要表格中的一DATE列来存储世纪+年、月和日组件。

要将这些组件提取到单独的列中,

SELECT DATE_FORMAT(mydatecol,'%M') AS month_name
     , DATE_FORMAT(mydatecol,'%e') AS day_of_month
     , DATE_FORMAT(mydatecol,'%Y') AS year
  FROM ... 

插入日期值

INSERT INTO ... (..., mydatecol, ... ) VALUES (... ,'2013-03-01', ... )

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format

于 2013-11-08T02:02:36.230 回答