Mysql表数据有问题吗?

时间:2010-03-09 11:46:28

标签: mysql

我是mysql的新手,想知道如何将以下HTML格式的用户birthdate添加到下面列出的MYSQL表数据中?

例如email VARCHAR(80) NOT NULL,的结构如何?

以下是HTML代码。

    <li><label>Date of Birth: </label>
    <label for="month">Month: </label>
        <select name="month" id="month">
            <option value="January">January</option>
            <option value="February">February</option>
            <option value="March">March</option>
            <option value="April">April</option>
            <option value="May">May</option>
            <option value="June">June</option>
            <option value="July">July</option>
            <option value="August">August</option>
            <option value="September">September</option>
            <option value="October">October</option>
            <option value="November">November</option>
            <option value="December">December</option>  
        </select>
    <label for="day">Day: </label>
        <select id="day" name="day">
            <option value="0" selected="selected">Day</option>
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
            <option value="6">6</option>
            <option value="7">7</option>
            <option value="8">8</option>
            <option value="9">9</option>
            <option value="10">10</option>
            <option value="11">11</option>
            <option value="12">12</option>
            <option value="13">13</option>
            <option value="14">14</option>
            <option value="15">15</option>
            <option value="16">16</option>
            <option value="17">17</option>
            <option value="18">18</option>
            <option value="19">19</option>
            <option value="20">20</option>
            <option value="21">21</option>
            <option value="22">22</option>
            <option value="23">23</option>
            <option value="24">24</option>
            <option value="25">25</option>
            <option value="26">26</option>
            <option value="27">27</option>
            <option value="28">28</option>
            <option value="29">29</option>
            <option value="30">30</option>
            <option value="31">31</option>
        </select>                   
    <label for="year">Year: </label><input type="text" name="year" id="year" /></li>

这是MySQL表数据。

CREATE TABLE users (
user_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
first_name VARCHAR(20) NOT NULL,
last_name VARCHAR(40) NOT NULL,
email VARCHAR(80) NOT NULL,
pass CHAR(40) NOT NULL,
user_level TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
active CHAR(32),
registration_date DATETIME NOT NULL,
PRIMARY KEY (user_id),
UNIQUE KEY (email),
INDEX login (email, pass)
);

4 个答案:

答案 0 :(得分:1)

如果要存储日期,可以使用DATE数据类型:

  

您需要时使用DATE类型   只有一个日期值,没有时间   部分。
MySQL检索并显示   DATE中的'YYYY-MM-DD'值   格式。
支持的范围是   '1000-01-01''9999-12-31'

然后,您将使用'YYYY-MM-DD'格式插入/更新或获取日期。


这意味着您的create table将如下所示:

CREATE TABLE users (
user_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
...
active CHAR(32),
registration_date DATETIME NOT NULL,
birthdate DATE NOT NULL,
PRIMARY KEY (user_id),
...
);


并且您使用SQL查询,例如(示例)

select * 
from users 
where birthdate >= '1980-01-01' and birthdate <= '1999-12-31'

和/或:

insert into users (..., birthdate, ...) 
values (..., '1965-03-24', ...)

和/或:

update users
set birthdate = '1988-05-12'
where uid_id = 125

答案 1 :(得分:0)

使用DATETIME/DATE字段存储此内容。

答案 2 :(得分:0)

您可以使用DATE数据类型作为生日。

如果要重新创建表格,可以添加:

birth_day DATE NOT NULL,

如果每个用户都无法拥有b'日,则可以删除NOT NULL条款。

如果你想改变现有的表,你可以这样做:

ALTER TABLE users
ADD COLUMN birth_day DATE

答案 3 :(得分:0)

在表格中使用DATE类型

CREATE TABLE users (
    user_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    first_name VARCHAR(20) NOT NULL,
    last_name VARCHAR(40) NOT NULL,
    email VARCHAR(80) NOT NULL,
    pass CHAR(40) NOT NULL,
    user_level TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
    active CHAR(32),
    registration_date DATETIME NOT NULL,

    birhtday DATE NOT NULL, 

    PRIMARY KEY (user_id),
    UNIQUE KEY (email),
    INDEX login (email, pass)
    );

您最好修改表单,以便value个月选项为数字,而不是完整的月份名称。像这样:

         <select name="month" id="month">
            <option value="1">January</option>
            <option value="2">February</option>
            <option value="3">March</option>
            <option value="4">April</option>
            <option value="5">May</option>
            <option value="6">June</option>
            <option value="7">July</option>
            <option value="8">August</option>
            <option value="9">September</option>
            <option value="10">October</option>
            <option value="11">November</option>
            <option value="12">December</option>  
        </select>

如果您使用的是PHP,那么为DATE类型设置正确值的代码:

<?php
    //$birthday will be something like '7-12-1985'
    $birthday = $_POST['year'].'-'.$_POST['month'].'-'.$_POST['day'];
?>