MySql建表时日期类型的出理 mysql 中,创建表时如何定义一个日期类型的字段
MySql\u5efa\u8868\u65f6\u65e5\u671f\u7c7b\u578b\u7684\u51fa\u7406mysql> SELECT NOW(), CONVERT_TZ (NOW(), '+8:00', '+9:00') A;
+---------------------+---------------------+
| NOW() | A |
+---------------------+---------------------+
| 2014-04-24 11:26:10 | 2014-04-24 12:26:10 |
+---------------------+---------------------+
1 row in set (0.00 sec)
Mysql\u4e2d\u7ecf\u5e38\u7528\u6765\u5b58\u50a8\u65e5\u671f\u7684\u6570\u636e\u7c7b\u578b\u6709\u4e09\u79cd\uff1aDate\u3001Datetime\u3001Timestamp\u3002
Date\u6570\u636e\u7c7b\u578b\uff1a\u7528\u6765\u5b58\u50a8\u6ca1\u6709\u65f6\u95f4\u7684\u65e5\u671f\u3002Mysql\u83b7\u53d6\u548c\u663e\u793a\u8fd9\u4e2a\u7c7b\u578b\u7684\u683c\u5f0f\u4e3a\u201cYYYY-MM-DD\u201d\u3002\u652f\u6301\u7684\u65f6\u95f4\u8303\u56f4\u4e3a\u201c1000-00-00\u201d\u5230\u201c9999-12-31\u201d\u3002
Datetime\u7c7b\u578b\uff1a\u5b58\u50a8\u65e2\u6709\u65e5\u671f\u53c8\u6709\u65f6\u95f4\u7684\u6570\u636e\u3002\u5b58\u50a8\u548c\u663e\u793a\u7684\u683c\u5f0f\u4e3a \u201cYYYY-MM-DD HH:MM:SS\u201d\u3002\u652f\u6301\u7684\u65f6\u95f4\u8303\u56f4\u662f\u201c1000-00-00 00:00:00\u201d\u5230\u201c9999-12-31 23:59:59\u201d\u3002
Timestamp\u7c7b\u578b\uff1a\u4e5f\u662f\u5b58\u50a8\u65e2\u6709\u65e5\u671f\u53c8\u6709\u65f6\u95f4\u7684\u6570\u636e\u3002\u5b58\u50a8\u548c\u663e\u793a\u7684\u683c\u5f0f\u8ddfDatetime\u4e00\u6837\u3002\u652f\u6301\u7684\u65f6\u95f4\u8303\u56f4\u662f\u201c1970-01-01 00:00:01\u201d\u5230\u201c2038-01-19 03:14:07\u201d\u3002
\u6240\u6709\u4e0d\u7b26\u5408\u4e0a\u9762\u6240\u8ff0\u683c\u5f0f\u7684\u6570\u636e\u90fd\u4f1a\u88ab\u8f6c\u6362\u4e3a\u76f8\u5e94\u7c7b\u578b\u76840\u503c\u3002\uff080000-00-00\u6216\u80050000-00-00 00:00:00\uff09
mysql(5.5)所支持的日期时间类型有:DATETIME、 TIMESTAMP、DATE、TIME、YEAR。
1.DATETIME 用于表示 年月日 时分秒,是 DATE 和 TIME 的组合,并且记录的年份比较长久。如果实际应用中有这样的需求,就可以使用 DATETIME 类型。
2.TIMESTAMP
TIMESTAMP 用于表示 年月日 时分秒,但是记录的年份比较短暂。
TIMESTAMP 和时区相关,更能反映当前时间。当插入日期时,会先转换为本地时区后再存放;当查询日期时,会将日期转换为本地时区后再显示。所以不同时区的人看到的同一时间是 不一样的。
表中的第一个 TIMESTAMP 列自动设置为系统时间(CURRENT_TIMESTAMP)。当插入或更新一行,但没有明确给 TIMESTAMP 列赋值,也会自动设置为当前系统时间。如果表中有第二个 TIMESTAMP 列,则默认值设置为0000-00-00 00:00:00。
TIMESTAMP 的属性受 Mysql 版本和服务器 SQLMode 的影响较大。
如果记录的日期需要让不同时区的人使用,最好使用 TIMESTAMP。
3.DATE
DATE 用于表示 年月日,如果实际应用值需要保存 年月日 就可以使用 DATE。
4.TIME
TIME 用于表示 时分秒,如果实际应用值需要保存 时分秒 就可以使用 TIME。
5.YEAR
YEAR 用于表示 年份,YEAR 有 2 位(最好使用4位)和 4 位格式的年。 默认是4位。如果实际应用只保存年份,那么用 1 bytes 保存 YEAR 类型完全可以。不但能够节约存储空间,还能提高表的操作效率。
资料拓展:
每种日期时间类型都有一个有效值范围,如果超出这个范围,在默认的SQLMode下会报错,并以零值存储。
插入或更新时,日期时间类型允许“不严格”语法,以DATETIME为例(其他日期时间类型雷同):
YYYY-MM-DD HH:MM:SS 或 YY-MM-DD HH:MM:SS 格式的字符串。任何符号都可以用作日期部分或时间部分的间隔符。例如:“14-06-18 14:54:10”、“14*06*18 14.54.10”、“14+06+18 14=54=10”是等价的。对于包含日期时间的字符串值,如果月、日、时、分、秒的值小于10,不需要指定两位数。例如:“2014-2-3 2:3:6”、“2014-02-03 02:03:06”是等价的。
YYYYMMDDHHMMSS 或 YYMMDDHHMMSS 格式的字符串。如果字符串对于日期时间类型是合法的就可以解释为日期时间类型。例如:“20140618145410” 和 “140618145410”将被解释为 “2014-06-18 14:54:10” ,但是 “20140618145480” 是不合法的(秒数不合法),将被解释为 “0000-00-00 00:00:00”。
YYYYMMDDHHMMSS 或 YYMMDDHHMMSS 格式的数字。如果该数字对日期时间类型是合法的就可以解释为日期时间类型。例如:“20140618145410” 和 “140618145410” 将被解释为 “2014-06-18 14:54:10” 。数值的长度应为6、8、12、14。如果数值长度是 8 或 14 位长,则假定为 YYYYMMDD 或 YYYYMMDDHHMMSS 格式。如果数值为 6 或 12 位长,则假定为 YYMMDD 或 YYMMDDHHMMSS 格式。
create table dat_admin_user
(
user_id char(36) not null,
user_name varchar(20) not null,
pwd varchar(20) not null,
create_time datetime not null,//创建日期类型
status char(1) not null,
primary key (user_id)
)
ENGINE = InnoDB;
mysql(5.5)所支持的日期时间类型有:DATETIME、 TIMESTAMP、DATE、TIME、YEAR。
拓展资料:
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。
MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。
Mysql-百度百科
1 mysql的日期时间类型:
date, time, datetime, timestamp;
2 示例:
drop table t;
create table test.t (
a date,
b time ,
c datetime DEFAULT '2012-01-01',
d timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP);
3 说明:
只有timestamp类型能设置DEFAULT CURRENT_TIMESTAMP,且有这个选项的timestamp列只能一个;
ON UPDATE CURRENT_TIMESTAMP 意义为,更新该行时,如不显式指明该列的值则自动取当时时间作为该列的值;
拓展资料:
实例
drop database if exists school; //如果存在SCHOOL则删除
create database school; //建立库SCHOOL
use school; //打开库SCHOOL
create table teacher //建立表TEACHER
(
id int(3) auto_increment not null primary key,
name char(10) not null,
address varchar(50) default ‘深圳',
year date
); //建表结束
//以下为插入字段
insert into teacher values('','glchengang',’XX公司‘,'1976-10-10');
insert into teacher values('','jack',’XX公司‘,'1975-12-23');
注:在建表中:
1.将ID设为长度为3的数字字段:int(3)并让它每个记录自动加一:auto_increment并不能为空:not null而且让他成为主字段primary key。
2.将NAME设为长度为10的字符字段。
3.将ADDRESS设为长度50的字符字段,而且缺省值为深圳。varchar和char有什么区别呢,只有等以后的文章再说了。
4.将YEAR设为日期字段。
如果你在mysql提示符键入上面的命令也可以,但不方便调试。你可以将以上命令原样写入一个文本文件中假设为school.sql,然后复制到c:\下,并在DOS状态进入目录\mysql\bin,然后键入以下命令:
mysql -uroot -p密码 < c:\school.sql
如果成功,空出一行无任何显示;如有错误,会有提示。(以上命令已经调试,你只要将//的注释去掉即可使用)。
mySQL 百度百科
1 mysql的日期时间类型:
date, time, datetime, timestamp;
2 示例:
drop table t;
create table test.t (
a date,
b time ,
c datetime DEFAULT '2012-01-01',
d timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)
;
3 说明:
只有timestamp类型能设置DEFAULT CURRENT_TIMESTAMP,且有这个选项的timestamp列只能一个;
ON UPDATE CURRENT_TIMESTAMP 意义为,更新该行时,如不显式指明该列的值则自动取当时时间作为该列的值;
`daytime` date
绛旓細鐩存帴浣跨敤鐨 int 濂斤紝姣曠珶鏃堕棿鎴冲彲浠ョ敤FROM_UNIXTIME绛夋椂闂村嚱鏁拌浆鎹㈡垚鏃堕棿鏍煎紡锛 int 姣攄atetime璁$畻鍜屾瘮杈冪畝鍗曚竴鐐癸紝杩樻湁鏄氨鏄劅瑙夋暟鎹噺澶у害鐨勮瘽int搴旇姣攄atetime鏇村揩涓鐐广傚叕鍙告暟鎹簱澶х墰鐭ワ紝寤虹殑閬撴墍鏈夌殑鏁版嵁琛ㄥ叧浜鏃堕棿鐨閮芥槸intint姣攄atetime璁$畻绠鍗曪紝鏁版嵁閲忓ぇ鐨勮瘽int姣攄atetime鍌ㄥ瓨閫熷害鏇村揩涓鐐广傛椂...
绛旓細/ smalldatetime绫诲瀷鏄疢S-SQL涓殑鏁版嵁绫诲瀷锛MySql涓病鏈夎鏁版嵁绫诲瀷銆侻ySql鍙湁DATE銆丏ATETIME銆乀IMESTAMP涓夌鏃ユ湡绫诲瀷銆/ --鎸夌収浠ヤ笅鍐欐硶灏变笉鎶ラ敊銆侰REATE TABLE user_info (userId nvarchar (40) NOT NULL ,name nvarchar (40) NOT NULL ,phone nvarchar (40) NOT NULL ,street nvarchar (40) ...
绛旓細褰撹璁板綍琛岃寤虹珛鏃锛岃 MySQL 璁剧疆璇ュ垪鍊笺傝繖灏嗗垵濮嬪寲璇ュ垪涓哄綋鍓鏃ユ湡鍜鏃堕棿銆備互鍚
绛旓細鍙互鐢―ate杩欎釜鏃堕棿鏍煎紡锛屽綋涓氬姟闇姹備腑闇瑕佺簿纭埌绉掓椂锛屽彲浠ョ敤DateTime杩欎釜鏃堕棿鏍煎紡銆4銆佸悗鍙板彇鍊肩殑鍖哄埆 Date鍚庡彴鍙栧硷細@JSONField(format=鈥漼yyy-MM-dd鈥)锛汥ateTime鍚庡彴鍙栧硷細@JSONField(format=鈥漼yyy-MM-dd HH:mm:ss:SSS鈥)锛堣繖閲屽彧浼氱簿纭埌绉掞級銆傚弬鑰冭祫鏂欙細鐧惧害鐧剧锛MySQL鍑芥暟 ...
绛旓細TIME鏁版嵁绫诲瀷琛ㄧず涓澶╀腑鐨鏃堕棿銆MySQL妫绱 骞朵笖浠"HH:MM:SS"鏍煎紡鏄剧ずTIME鍊硷紝浣嗗厑璁镐娇鐢ㄥ瓧绗︿覆鎴栨暟瀛椾负TIME鍒楀垎閰嶅笺傛敮鎸佽寖鍥存槸'00:00:00'鍒'23:59:59'銆俆IMESTAMP[(M)]鏃堕棿鎴炽傝寖鍥存槸鈥1970-01-01 00:00:00鈥欏埌2037骞淬俆IMESTAMP鍒楃敤浜嶪NSERT鎴朥PDATE鎿嶄綔鏃惰褰鏃ユ湡鍜屾椂闂淬傚鏋滀笉鍒嗛厤涓涓...
绛旓細insert into test_date1 values(3,str_to_date('2019-08-05','%Y-%m-%d'));insert into test_date1 values(4,str_to_date('2019-09-09','%Y-%m-%d'));commit;3銆佹煡璇㈣〃涓叏閲忔暟鎹紝select t.* from test_date1 t;4銆佺紪鍐欒鍙ワ紝鏌ヨdate绫诲瀷瀛楁锛鏃ユ湡澶т簬20190901鐨勬暟鎹紱select t....
绛旓細MySQL鎵浣跨敤鐨 SQL 璇█鏄敤浜庤闂暟鎹簱鐨勬渶甯哥敤鏍囧噯鍖栬瑷銆侻ySQL 杞欢閲囩敤浜嗗弻鎺堟潈鏀跨瓥锛屽垎涓虹ぞ鍖虹増鍜屽晢涓氱増锛岀敱浜庡叾浣撶Н灏忋侀熷害蹇佹讳綋鎷ユ湁鎴愭湰浣庯紝灏ゅ叾鏄紑鏀炬簮鐮佽繖涓鐗圭偣锛屼竴鑸腑灏忓瀷缃戠珯鐨勫紑鍙戦兘閫夋嫨 MySQL 浣滀负缃戠珯鏁版嵁搴撱鏃ユ湡鍨锛圖ATETIME锛夋暟鎹槸琛ㄧず鏃ユ湡鏁版嵁锛岀敤瀛楁瘝D琛ㄧず銆傛棩鏈熺殑榛樿鏍煎紡鏄...
绛旓細鏃犺鍝釜瀵逛綘鏉ヨ濂借薄鏈鍚堢悊銆傦紙濡傛灉浣犲仛浜嗚緝宸殑閫夋嫨锛屼互鍚庝細鍙樺緱浣犻渶瑕佷竴涓洿闀跨殑瀛楁锛MySQL鎻愪緵涓涓狝LTER TABLE璇彞銆傦級鍔ㄧ墿鎬ц〃鍙互鐢ㄨ澶氭柟娉曡〃绀猴紝渚嬪锛"m"鍜"f"锛屾垨涔熻"male"鍜"female"銆備娇鐢ㄥ崟涓瓧绗"m"鍜"f"鏄渶绠鍗曠殑銆備负birth鍜宒eath鍒椾娇鐢―ATE鏁版嵁绫诲瀷鏄浉褰撴槑鏄剧殑閫夋嫨銆
绛旓細datetime绫诲瀷鐨鏁版嵁鍦ㄦ暟鎹簱瀛樺偍鐨勬椂鍊鏄簿纭埌姣鐨勶紝鍥犱负浣犲湪瀛樺彇鐨勬椂鍊欏彧绮剧‘鍒伴绉掞紝鎵浠ユ暟鎹簱榛樿鐨勭粰娣诲姞浜嗕竴涓.0銆傛墍浠ヤ綘鍦ㄥ悗鍙板彇鍑烘椂鏄甫.0鐨勩傚鏋滀綘瑕佸湪椤甸潰涓婁篃鐪嬪埌绮剧‘鍒板垎鐨勶紝閭d綘鍦ㄥ悗鍙版埅鍙栧瓧绗︿覆鐒跺悗鍦ㄤ紶鍒板墠鍙板氨濂戒簡
绛旓細mysql> ALTER TABLE test_wang -> MODIFY COLUMN date1 -> VARCHAR(20)-> DEFAULT '123' ;Query OK, 0 rows affected (0.02 sec)Records: 0 Duplicates: 0 Warnings: 0 DROP TABLE test_wang;-- 濡傛灉鏄 鏃ユ湡鐨璇, 灏濊瘯浣跨敤 TIMESTAMP 鏁版嵁绫诲瀷 -- 鏉ュ疄鐜拌繖涓姛鑳.mysql> ...