您当前的位置:首页 > 互联网教程

SQL 中 date 与datetime的区别

发布时间:2025-05-23 02:39:27    发布人:远客网络

SQL 中 date 与datetime的区别

一、SQL 中 date 与datetime的区别

①date类型可用于需要一个日期值而不需要时间部分时;

②datetime类型:可用于需要同时包含日期和时间信息的值。

①date:MySQL以'YYYY-MM-DD'格式检索与显示date值;

②datetime:MySQL以'YYYY-MM-DD HH:mm:ss'格式检索与显示 DATETIME类型。

结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同的结构化查询语言作为数据输入与管理的接口。

结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。

1986年10月,美国国家标准协会对SQL进行规范后,以此作为关系式数据库管理系统的标准语言(ANSI X3. 135-1986),1987年得到国际标准组织的支持下成为国际标准。

不过各种通行的数据库系统在其实践过程中都对SQL规范作了某些编改和扩充。

所以,实际上不同数据库系统之间的SQL不能完全相互通用。

(1)省略年/月/日显示系统日期并提示输入新的日期,不修改则可直接按回车键,要修改则直接输入新日期。

⑵当机器开始启动时,有自动处理文件(AUTOEXEC.BAT)被执行,则系统不提示输入系统日期。否则,提示输入新日期和时间。

C/S设计中的DateTimePicker控件[1],有两种操作模式:

1.下拉式日历模式(缺省)—允许用户显示一种能够用来选择日期的下拉式日历。

2.时间格式模式—允许用户在日期显示中选择一个字段(例如:月、日、年等等),按下控件右边的上下箭头来设置它的值。

可以自定义控件的下拉式日历的外观。

使用各种颜色属性,例如CalendarBackColor,CalendarForeColor,CalendarTitleBackColor,CalendarTitleForeColor和CalendarTrailingForeColor,允许创建属于您自己的颜色方案。

可以使用键盘或鼠标对控件进行浏览。下拉式日历有两个按钮使您能够滚动月份数据出入视图。

参考资料:百度百科-SQL百度百科-date百度百科-DateTimePicker控件

二、MySql要怎么插入DateTime型的数据

1、Date date=new Date();//先获取一个Date对象

2、DateFormat simpleDateFormat= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//创建一个格式化日期对象

3、String punchTime= simpleDateFormat.format(date);//格式化后的时间

4、Timestamp timeStamp= new Timestamp(date.getTime());//让日期时间转换为数据库中的timestamp类型

5、DateFormat是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。日期/时间格式化子类(如 SimpleDateFormat)允许进行格式化(也就是日期->文本)、解析(文本->日期)和标准化。

6、将日期表示为 Date对象,或者表示为从 GMT(格林尼治标准时间)1970年 1月 1日 00:00:00这一刻开始的毫秒数。

7、Timestamp允许 JDBC API将该类标识为 SQL TIMESTAMP值。它通过允许小数秒到纳秒级精度的规范来添加保存 SQLTIMESTAMP小数秒值的能力。Timestamp也提供支持时间戳值的 JDBC转义语法的格式化和解析操作的能力。

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

mysql数据库里的日期用timestamp还是datetime好(1)4个字节储存

(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参考手册。

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字段的值都不会改变,除非你手动更改它。

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数据库

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数据库

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

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'''''''''''''''''''''''''''''' 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&";"

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

''''''''''''''''''''''''''以下为专业人员设置选项,普通用户请勿修改''''''''''''''''''''''''''

Session.CodePage="936"'936(简体中文) 950(繁体中文) 65001(Unicode)

BBSxpCharset="GB2312"'GB2312(简体中文) Big5(繁体中文) UTF-8(Unicode)

Response.Charset=BBSxpCharset

上面bbsxp7b1版本用的是Aess数据库,因为IsSqlDataBase=0

mysql数据库可以修改表的日期格式吗

日期型的字段存储的格式是固定的不可以修改,需要输出时转换成需要的格式,如果你不想输出时转换那么需要设为字符型的,存储时转换.总之不管先转还是后转,一定要转