mysql数据库里的日期用timestamp还是datetime好

作者&投稿:山融 (若有异议请与网页底部的电邮联系)
~ mysql数据库里的日期用timestamp还是datetime好 (1)4个字节储存
(2)值以UTC格式保存
(3)时区转化 ,存储时对当前的时区进行转换,检索时再转换回当前的时区。
(4)TIMESTAMP值不能早于1970或晚于2037!

timestamp在数据库里实际记载的时间是国际标准时间,同一个timestamp值在不同的时区检索出来的日期时间是不一样的,因为系统会根据时区的不同进行自动时区转换,而datetime则不会进行转换时区转换,存储时是什么日期时间,检索出来的就是存入时的日期时间,它不会有变化。至于这两种日期时间类型哪种好是没有定论的,要根据实际情况和应用需求做出取舍。
请注意由于无需实施时区转换,系统处理dateime所产生的系统开销要比timestamp小。

没什么好不好的,方便省事才是王道。都用datetime 你说呢,谁在乎那点存储

类型

类型 存储需求 格式 时间范围
datetime 8个字节 yyyy-mm-dd hh-mm-ss 1000-01-01 00:00:00 到9999-12-31 23:59:59 timestamp 4个字节 yyyy-mm-dd hh-mm-ss 1970-01-01 00:00:00 到2037-12-31 23:59:59
timestamp类型会有时区变量的影响,跨时区使用时应注意

datetime 8个字节 yyyy-mm-dd hh-mm-ss 1000-01-01 00:00:00 到9999-12-31 23:59:59
timestamp 4个字节 yyyy-mm-dd hh-mm-ss 1970-01-01 00:00:00 到2037-12-31 23:59:59
timestamp类型会有时区变量的影响,跨时区使用时应注意

没什么好不好的,方便省事才是王道。都用datetime 你说呢,谁在乎那点存储 类型 类型 存储需求 格式 时间范围 datetime 8个字节

Mysql中经常用来存储日期的数据类型有2种:Date、Datetime.

1.Date数据类型:用来存储没有时间的日期。Mysql获取和显示这个类型的格式为“YYYY-MM-DD”。支持的时间范围为“1000-00-00”到“9999-12-31”。

2.Datetime类型:存储既有日期又有时间的数据。存储和显示的格式为 “YYYY-MM-DD HH:MM:SS”。支持的时间范围是“1000-00-00 00:00:00”到“9999-12-31 23:59:59”。

TIMESTAMP列用于INSERT或UPDATE操作时记录日期和时间。如果你不分配一个值,表中的第一个TIMESTAMP列自动设置为最近操作的日期和时间。也可以通过分配一个NULL值,将TIMESTAMP列设置为当前的日期和时间。

TIMESTAMP值返回后显示为'YYYY-MM-DDHH:MM:SS'格式的字符串,显示宽度固定为19个字符。如果想要获得数字值,应在TIMESTAMP列添加+0。

注释:MySQL4.1以前使用的TIMESTAMP格式在MySQL5.1中不支持;关于旧格式的信息参见MySQL4.1参考手册。

datetime
1. 占用8个字节
2. 允许为空值,可以自定义值,系统不会自动修改其值。
3. 实际格式储存(Just stores what you have stored and retrieves the same thing which you have stored.)
4. 与时区无关(It has nothing to deal with the TIMEZONE and Conversion.)
5. 不可以设定默认值,所以在不允许为空值的情况下,必须手动指定datetime字段的值才可以成功插入数据。
6. 可以在指定datetime字段的值的时候使用now()变量来自动插入系统的当前时间。
结论:datetime类型适合用来记录数据的原始的创建时间,因为无论你怎么更改记录中其他字段的值,datetime字段的值都不会改变,除非你手动更改它。

timestamp
1. 占用4个字节
2. 允许为空值,但是不可以自定义值,所以为空值时没有任何意义。
3. TIMESTAMP值不能早于1970或晚于2037。这说明一个日期,例如'1968-01-01',虽然对于DATETIME或DATE值是有效的,但对于TIMESTAMP值却无效,如果分配给这样一个对象将被转换为0。
4.值以UTC格式保存( it stores the number of milliseconds)
5.时区转化 ,存储时对当前的时区进行转换,检索时再转换回当前的时区。
6. 默认值为CURRENT_TIMESTAMP(),其实也就是当前的系统时间。
7. 数据库会自动修改其值,所以在插入记录时不需要指定timestamp字段的名称和timestamp字段的值,你只需要在设计表的时候添加一个timestamp字段即可,插入后该字段的值会自动变为当前系统时间。
8. 以后任何时间修改表中的记录时,对应记录的timestamp值会自动被更新为当前的系统时间。
结论:timestamp类型适合用来记录数据的最后修改时间,因为只要你更改了记录中其他字段的值,timestamp字段的值都会被自动更新。
看完这个比较你就知道用哪个好啦
我们公司一般用datatime,可控性比较强
jdbc查询Mysql数据库的日期问题
你没说错!
查出来可以保存为String类型 具体转化一下就OK了
BBSXP 用的MYSQL数据库还是MSSQL数据库
BBSXP同时支持Aess数据库和MSSQL数据库
在Config.asp文件里定义:
IsSqlDataBase=1 '定义数据库类别,0为Aess数据库,1为SQL数据库
不知道你是哪个版本,在BBSxp 2008 SP2里Config.asp文件在根目录下。内容如下:
<%
InstallIPAddress="127.0.0.1" '安装BBSXP的IP地址,针对install.asp的访问权限
TablePrefix="BBSXP_" '数据库表的前辍名(一般不用更改)
IsSqlDataBase=0 '定义数据库类别,0为Aess数据库,1为SQL数据库
If IsSqlDataBase=0 Then
'''''''''''''''''''''''''''''' Aess数据库设置 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''
SqlDataBase = "database/bbsxp2008.mdb" '数据库路径
SqlProvider = "Microsoft.Jet.OLEDB.4.0" '驱动程序[ Microsoft.Jet.OLEDB.4.0 Microsoft.ACE.OLEDB.12.0 ]
SqlPassword = "" 'ACCESS数据库密码
Connstr="Provider="&SqlProvider&";Jet Oledb:Database Password="&SqlPassword&"; Data Source="&Server.MapPath(SqlDataBase)
SqlNowString="Now()"
SqlChar="'"
IsSqlVer="ACCESS"
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Else
'''''''''''''''''''''''''''''' SQL数据库设置 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
SqlLocalName = "(local)" '连接IP [ 本地用 (local) 外地用IP ]
SqlUserName = "sa" 'SQL用户名
SqlPassword = "1234" 'SQL用户密码
SqlDataBase = "bbsxp" '数据库名
SqlProvider = "SQLOLEDB" '驱动程序 [ SQLOLEDB SQLNCLI ]
ConnStr="Provider="&SqlProvider&"; User ID="&SqlUserName&"; Password="&SqlPassword&"; Initial CataLog="&SqlDataBase&"; Data Source="&SqlLocalName&";"
SqlNowString="GetDate()"
IsSqlVer="MSSQL"
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
End If
'''''''''''''''''''''''''' 以下为专业人员设置选项,普通用户请勿修改 ''''''''''''''''''''''''''
Session.CodePage="936" '936(简体中文) 950(繁体中文) 65001(Unicode)
BBSxpCharset="GB2312" 'GB2312(简体中文) Big5(繁体中文) UTF-8(Unicode)
Response.Charset=BBSxpCharset
Response.Buffer=True
%>
注:
上面bbsxp7b1版本用的是Aess数据库,因为IsSqlDataBase=0
mysql数据库可以修改表的日期格式吗
日期型的字段 存储的格式是固定的不可以修改, 需要输出时 转换成需要的格式, 如果你不想输出时转换 那么需要 设为字符型的, 存储时转换. 总之 不管先转还是后转 ,一定要转


mysql怎么删除数据库(mysql怎么删除数据库中的表)
删除数据库是将已经存在的数据库从磁盘空间中清除,数据库中的所有数据也全部被删除。基本语法格式:其中“db_name”是要删除的数据库名称,如果指定数据库名不存在,则删除出错。实例:删除数据库shulanxt,输入语句如下:执行上述语句,数据库shulanxt被删除,再次使用SHOWCREATEDATABASE查看数据库定义,结果...

mysql数据库里的数据是什么格式的
1、中止MySQL服务(bin\/mysqladmin -u root shutdown)2、在\/etc\/下找到my.cnf,如果没有就把MySQL的安装目录下的support-files目录下的my-medium.cnf复制到\/etc\/下并改名为my.cnf即可 3、打开my.cnf以后,在[client]和[mysqld]下面均加上default-character-set=utf8,保存并关闭 4、启动MySQL服...

MySQL的数据库文件有几种?扩展名及作用分别是什么?
在MySQL中每一个数据库都会在定义好(或者默认)的数据目录下存在一个以数据库名字命名的文件夹,用来存放该数据库中各种表数据文件。1、“.frm”文件 与表相关的元数据(meta)信息都存放在“.frm”文件中,包括表结构的定义信息等。不论是什么存储引擎,每一个表都会有一个以表名命名的“.frm”文...

如何向MySQL数据库的表中录入数据
你首先想到的就是向数据库的表中输入数据.这就牵涉到如何向数据库增加数据.下面我们就来探讨一下这个问题:1.一般我们常用的方法是insert语句(这里假定各位的版本都不是很低).她有以下几种形式:insert into tablename values(value1,value2,...)insert into tablename(fieldname1,fieldname2,...) ...

mysql数据库的存放位置在哪里
数据库文件的默认存储位置是在操作系统的文件系统中,通常位于C盘的Program Files目录下,MySQL安装目录的data子目录中。例如,在Windows系统上,默认路径可能是C:\\Program Files\\MySQL\\MySQL Server 8.0\\data。请注意,这个路径可能会因MySQL版本和操作系统类型的不同而有所变化。MySQL的配置文件,名为my....

mysql数据库里的字段名用下划线,PHP变量用驼峰合适么
第一种:属性和传参一律采用驼峰 userName=$_GET['userName']?$_GET['userName']:'';if($isYoung){ data=['user_name'=>$userName];db->insert($data,$table);} 第二种:属性采用驼峰,传参与mysql一致 userName=$_GET['user_name']?$_GET['user_name']:'';if($isYoung){ data=[...

在mysql数据库中怎么样查看数据库中的所有内容?
在CMD中输入: net start mysql 在服务管理器中启动,关闭.MySQL登录 在CMD中输入 mysql –h localhost –u root -p 查看数据库: show databases;使用数据库: use db_name;查看表: show tables;查看表结构: describe table_name;查看表: show tables;要是不想用命令就在安装MYSQL的浏览器,...

MySQL中数据库的默认字符集和校对规则有哪些?
MySQL 常用字符集 1. Latin1 Latin1 是 cp1252 或者 ISO-8859-1 的别名。ISO-8859-1 编码是单字节编码,向下兼容 ASCII。编码范围:U+0000 - U+00FF ISO-8859-1 收录的字符除 ASCII 收录的字符外,还包括西欧语言、希腊语、泰语、阿拉伯语、希伯来语对应的文字符号。单字节内的空间都被 ISO-...

在mysql数据库中怎么样查看数据库中的所有内容?
net start mysql在服务管理器中启动,关闭.MySQL登录在CMD中输入mysql –h localhost –u root -p查看数据库: show databases;使用数据库: use db_name;查看表: show tables;查看表结构: describe table_name;查看表: show tables;要是不想用命令就在安装MYSQL的浏览器,直接在里面打开看就好了 ...

查询mysql数据库中所有表名
查询数据库中所有表名有两种方法:1、select table_name from information_schema.tables where table_schema='当前数据库';2、show tables;其中,information_schema这张数据表保存了MySQL服务器所有数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权限等。再简单点,这台MySQL服务器上,...

赫山区19159474529: mysql数据库里的日期用timestamp还是datetime好? -
春广维健: Mysql中经常用来存储日期的数据类型有2种:Date、Datetime.1.Date数据类型:用来存储没有时间的日期.Mysql获取和显示这个类型的格式为“YYYY-MM-DD”.支持的时间范围为“1000-00-00”到“9999-12-31”.2.Datetime类型:存储既...

赫山区19159474529: mysql问题?在mysql中怎么插入一个time类型的数据,数
春广维健: mysql中,time类型(格式: '00:00:00' 不带日期 -- datetime类型带日期 : '0000-00-00 00:00:00'),插入的时候,就插入对应格式的字符串就好了,格式不对,就会变成'00:00:00' . 对应的字段插入对应的字符串就好了. 希望能给你帮助.

赫山区19159474529: mysql数据库的时间存什么格式好 -
春广维健: 看你要什么样的格式撒 DATE 3 1000-01-01/9999-12-31 YYYY-MM-DD 日期值 TIME 3 '-838:59:59'/'838:59:59' HH:MM:SS 时间值或持续时间 YEAR 1 1901/2155 YYYY 年份值 DATETIME 8 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值 TIMESTAMP 8 1970-01-01 00:00:00/2037 年某时 YYYYMMDD HHMMSS 混合日期和时间值,时间戳

赫山区19159474529: mysql中时间是dateTime类型的 -
春广维健: 不要用 new Date()赋值,直接用mysql的内置函数 now()进行插入 或者 更新即可. update 你的表 set 日期字段名 = now() where .... 或者 insert into 你的表 ( 日期字段名 ) values ( now() ) 或者 select now(); //获取当前时间

赫山区19159474529: mysql怎么把时间表示成yyyy - mm - dd hh:mm:ss:sss格式 -
春广维健: SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(t.time), '%Y-%m-%d %h:%i:%s') as time FROM XXX t;format字符串: %M 月名字(January……December) %W 星期名字(Sunday……Saturday) %D 有英语前缀的月份的日期(1st, 2nd, 3rd...

赫山区19159474529: 在mysql中怎么插入一个time类型的数据,数据库字段的数据类型是time,我后台要插入数据 String sql="insert -
春广维健: 只需要格式符合插进去的时候 会自动格式化比如 INSERT INTO table_name (postname, posttime) VALUES ('admin', '2011-01-01 00:00:00')这里 posttime 就是 2011-01-01 00:00:00 只需要把去过来的时间格式化一下代替就好了, 不知道你用什么语言开发的,不懂的再问吧.

赫山区19159474529: MySQL中用datetime储存日期格式,在数据表中只能是以年月日时分秒的形式吗? -
春广维健: 你可以用date型态

赫山区19159474529: mysql数据库怎么获得当前日期 -
春广维健: 1.1 获得当前日期+时间(date + time)函数:now() 除了 now() 函数能获得当前的日期时间外,MySQL 中还有下面的函数: current_timestamp() current_timestamp localtime() localtime localtimestamp() localtimestamp 这些日期时间函数,都等同...

赫山区19159474529: 在mysql中存入一个时间值的sql语句怎么写?
春广维健: 通常,把数据库字段,设置为INT 时间用time()来保存进去,在显示的地方用date()来处理,这样子在以后的操作非常方便

赫山区19159474529: Mysql中时间日期使用date类型好还是bigint时间戳好 -
春广维健: 如果时间精确到毫秒的话,datetime是做不到的,但如果精度要求不高的话,一般都用datetime类型的,date类型不包括时间,只有日期

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网