mysql存储ip地址怎么设置,mysql数据库里的日期用timestamp还是datetime好

seosqwseo1周前 (09-12)测评日记12

一、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连接时用的IP地址是不是电脑本机上的IP地址呢!

是root用户的话,IP就是<localhost>或<127.0.0.1>,只是代表使用本机,不是代表本机IP地址,*作方法如下:

1、首先,利用Navicat创建一个数据库和表,数据库名为testdb,表为userinfo,并添加一条新记录。

2、用如下的数据库连接字符串访问数据库时,是没有问题的。Driver= MySQL ODBC 5.1 Driver; Server= localhost; Port=3306; DATABASE= testdb; user= root; password= 123456。

3、其中,Server是数据库所在主机IP地址,Prot是连接端口;user和password则为连接数据库的用户名和密码,使用Select* from userinfo可以正确获取到数据。

4、但是当把localhost换成实际的IP地址的时候,就报错了,说明这个数据库testdb是默认没开启访问权限的,默认情况下只允许localhost和127.0.0.1访问。

5、更新root账户的权限。打开mysql命令行窗口,输入grant all privileges on*.* to root@"%" identified by'abc' with grant option;flush privileges。

6、创建一个新账户,如guest,并将可被访问的主机定义为%,即所有主机都可访问该账户。测试,没有问题。

三、mysql 权限设置

背景

在了解动态权限之前,我们先回顾下 MySQL的权限列表。

权限列表大体分为服务级别和表级别,列级别以及大而广的角色(也是MySQL 8.0新增)存储程序等权限。我们看到有一个特殊的 SUPER权限,可以做好多个*作。比如 SET变量,在从机重新指定相关主机信息以及清理二进制日志等。那这里可以看到,SUPER有点太过强大,导致了仅仅想实现子权限变得十分困难,比如用户只能 SET变量,其他的都不想要。那么 MySQL 8.0之前没法实现,权限的细分不够明确,容易让非法用户钻空子。

那么 MySQL 8.0把权限细分为静态权限和动态权限,下面我画了两张详细的区分图,图 1为静态权限,图 2为动态权限。

图 1- MySQL静态权限的权限管理图

图 2-动态权限图

那我们看到其实动态权限就是对 SUPER权限的细分。 SUPER权限在未来将会被废弃掉。

我们来看个简单的例子,

比如,用户'ytt2@localhost',有 SUPER权限。

mysql> show grants for ytt2@'localhost';+---------------------------------------------------------------------------------+| Grants for ytt2@localhost|+---------------------------------------------------------------------------------+| GRANT INSERT, UPDATE, DELETE, CREATE, ALTER, SUPER ON*.* TO ytt2@localhost|+---------------------------------------------------------------------------------+1 row in set(0.00 sec)

但是现在我只想这个用户有 SUPER的子集,设置变量的权限。那么单独给这个用户赋予两个能设置系统变量的动态权限,完了把 SUPER给拿掉。

mysql> grant session_variables_admin,system_variables_admin on*.* to ytt2@'localhost';Query OK, 0 rows affected(0.03 sec)mysql> revoke super on*.* from ytt2@'localhost';Query OK, 0 rows affected, 1 warning(0.02 sec)

我们看到这个 WARNINGS提示 SUPER已经废弃了。

mysql> show warnings;

+---------+------+----------------------------------------------+

| Level| Code| Message|

+---------+------+----------------------------------------------+

| Warning| 1287| The SUPER privilege identifier is deprecated|

+---------+------+----------------------------------------------+

1 row in set(0.00 sec)`

mysql> show grants for ytt2@'localhost';

+-----------------------------------------------------------------------------------+

| Grants for ytt2@localhost|

+-----------------------------------------------------------------------------------+

| GRANT INSERT, UPDATE, DELETE, CREATE, ALTER ON*.* TO ytt2@localhost|

| GRANT SESSION_VARIABLES_ADMIN,SYSTEM_VARIABLES_ADMIN ON*.* TO ytt2@localhost|

+-----------------------------------------------------------------------------------+

2 rows in set(0.00 sec)

当然图 2上还有其它的动态权限,这里就不做特别说明了。

相关文章

海信电视55E5H55英寸4K超清使用感受如何

海信电视55E5H55英寸4K超清使用感受如何

很多小伙伴在关注海信电视55E5H55英寸4K超清怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应的优惠信息,为大家推荐一款高性价比的产品,一起来看看...

小米(MI)小米电视测评使用介绍

小米(MI)小米电视测评使用介绍

很多小伙伴在关注小米(MI)小米电视怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应的优惠信息,为大家推荐一款高性价比的产品,一起来看看吧。...

海信电视65E8G65英寸4K使用心得反馈

海信电视65E8G65英寸4K使用心得反馈

很多小伙伴在关注海信电视65E8G65英寸4K怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应的优惠信息,为大家推荐一款高性价比的产品,一起来看看吧。...

酷开(coocaa)创维酷开电视43P31测评使用介绍

酷开(coocaa)创维酷开电视43P31测评使用介绍

很多小伙伴在关注酷开(coocaa)创维酷开电视43P31怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应的优惠信息,为大家推荐一款高性价比的产品,一...

适马(SIGMA)Art85mm质量测评好不好

适马(SIGMA)Art85mm质量测评好不好

很多小伙伴在关注适马(SIGMA)Art85mm怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应的优惠信息,为大家推荐一款高性价比的产品,一起来看看吧...

小度智能屏X8升级版测评分享

小度智能屏X8升级版测评分享

很多小伙伴在关注小度智能屏X8升级版怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应的优惠信息,为大家推荐一款高性价比的产品,一起来看看吧。...