我是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)
);
答案 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'];
?>