2010-03-09 44 views
0

我是新来的MySQL,想知道如何将用户birthdate以下面的HTML格式添加到下面列出的MYSQL表数据?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) 
); 

回答

0

使用DATETIME/DATE字段来存储这一点。

+0

它是如何将看起来像我的MySQL表? – DaTeNtImE 2010-03-09 11:50:57

+0

Somethinf like ** bithday DATETIME DEFAULT NULL ** – 2010-03-09 11:52:48

0

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

如果你想重新创建表中可以添加:

birth_day DATE NOT NULL, 

如果它不可能有一个b'day为每个用户可以删除NOT NULL条款。

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

ALTER TABLE users 
ADD COLUMN birth_day DATE 
1

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

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

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


这意味着你创建的表是这样的:

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 
0

使用表中的

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) 
    ); 

你最好修改您的形式DATE类型,这样的月选项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']; 
?>