数据库存储日期时间数据时,使用数据类型datetime和datetime2有什么区别

数据库存储日期时间数据时,使用数据类型datetime和datetime2有什么区别,第1张

Datetime:

时间格式,对应于数据库中的DateTime类型,对应于NET里面的System

DateTime类型。DateTime支持日期从1753年1月1日到9999年12月31日,时间部分的精确度是333毫秒,它需要8字节的存储空间。

Datetime2:

时间格式,就Sql

Server

2008

里面新增的字段类型。对应于数据库中的DateTime2格式,对应于NET里面的System

DateTime类型。DateTime2则支持从0001年01月01日到9999年12月31日,时间部分的精度是100纳秒,占用6到8字节的存储空间,取决于存储的精度。

datetime2数据类型,类似于之前的datetime类型,不过其精度比较高,可以精确到小数点后面7位(100ns)

数据库字段类型一般为:

int    直接存入时间戳

timestamp  需转成date('Y-m-d H:i:s', time());   2016-07-20 10:10:10

在数据库中时间格式是采用UTC时间的。2010-1-1、2010-11-1、2010-1-11这些都是正确的,没有任何错误。你添加到数据库中的时候注意打“-”将来在外部应用程序中你想要显示为什么格式,那个你可以自己格式化即可。

1、如果数据库中存储时间的数据类型为datetime,那就避免在后台代码(aspxcs)中转化时间格式,将格式转化的任务放到界面代码(aspx)上。

无论获取的时间是什么格式的,在后台不要对这个时间的值进行任何 *** 作(比如赋值等,否则系统会将时间隐式转换),而是直接在界面代码(aspx)用DataBinder、Eval等方法来直接进行格式化:

后台关键代码:

<span style="white-space:pre"> </span>DataTable dt = new NewsManager()SelectById(newsid); //这里得到的dt为从直接数据库中查询到的数据

<span style="white-space:pre"> </span> repNewsDataSource =dt;

repNewsDataBind();

前台关键代码:

<span style="white-space:pre"> </span><asp:Repeater ID="repNews" runat="server">

<ItemTemplate>

<p class="con_time">

发布时间:

<%# DataBinderEval(ContainerDataItem,"createTime","{0:yyyy-MM-dd HH:mm:ss}") %> <%--此处createTime为上面dt中的字段名--%>

</p>

</ItemTemplate>

</asp:Repeater>

在数据库取出来的时候就转换好

select

getdate()

2006-05-12

11:06:08177

我整理了一下SQL

Server里面可能经常会用到的日期格式转换方法:

举例如下:

select

Convert(varchar(10),getdate(),120)

2006-05-12

select

CONVERT(varchar,

getdate(),

120

)

2006-05-12

11:06:08

select

replace(replace(replace(CONVERT(varchar,

getdate(),

120

),'-',''),'

',''),':','')

20060512110608

select

CONVERT(varchar(12)

,

getdate(),

111

)

2006/05/12

select

CONVERT(varchar(12)

,

getdate(),

112

)

20060512

select

CONVERT(varchar(12)

,

getdate(),

102

)

20060512

其它几种不常用的日期格式转换方法:

select

CONVERT(varchar(12)

,

getdate(),

101

)

0612/2005

select

CONVERT(varchar(12)

,

getdate(),

103

)

12/09/2004

select

CONVERT(varchar(12)

,

getdate(),

104

)

12052006

select

CONVERT(varchar(12)

,

getdate(),

105

)

12-05-2006

select

CONVERT(varchar(12)

,

getdate(),

106

)

12

05

2006

select

CONVERT(varchar(12)

,

getdate(),

107

)

05

12,

2006

select

CONVERT(varchar(12)

,

getdate(),

108

)

11:06:08

select

CONVERT(varchar(12)

,

getdate(),

109

)

0512

2006

1

select

CONVERT(varchar(12)

,

getdate(),

110

)

09-12-2004

select

CONVERT(varchar(12)

,

getdate(),

113

)

12

052006

select

CONVERT(varchar(12)

,

getdate(),

114

)

11:06:08177

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

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

DateTime 日期和时间部分,可以表示的日期范围从公元1753年1月1日00:00:00000 到9999年12月31日23:59:59997 ,精确到333毫秒,它需要8个字节的存储空间,其中前4个字节用于存储1900年1月1日以前或以后的天数,数值分正负,正数表示在此日期之后的日期,负数表示在此日期之前的日期;后4个字节用于存储从此日零时起所指定的时间经过的毫秒数。

扩展资料

在MySQL中创建表时,很容易通过类型介绍就能选择到合适自己的数据类型。不过到底是选择 datetime 还是 timestamp,可能会有点犯难。这两个日期时间类型各有优点:datetime 的日期范围比较大;timestamp 所占存储空间比较小,只是 datetime 的一半。

另外,timestamp 类型的列还有个特性:默认情况下,在 insert, update 数据时,timestamp 列会自动以当前时间(CURRENT_TIMESTAMP)填充/更新。“自动”的意思就是,你不去管它,MySQL 会替你去处理。

参考资料来源:百度百科-SQL数据类型

可通过用PL/SQL来改变日期格式。

1、登录PL/SQL。

2、登录后,点击菜单栏,工具—首选项。

3、左侧列表找到“日期/时间”。

4、可通过右侧的各种方式进行自定义的格式和自带的格式来进行修改,修改后点击“确定”按钮保存即可。

以上就是关于数据库存储日期时间数据时,使用数据类型datetime和datetime2有什么区别全部的内容,包括:数据库存储日期时间数据时,使用数据类型datetime和datetime2有什么区别、怎样把时间转为数据库的时间格式、数据库的时间格式不对。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9331751.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存