数据库时间格式?数据库中 日期的几种表示方法
今天给各位分享数据库时间格式的知识,其中也会对数据库中 日期的几种表示方法进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
mysql数据库中字段为时间类型要怎么表示
Mysql中经常用来存储日期的数据类型有三种:Date、Datetime、Timestamp。
Date数据类型:用来存储没有时间的日期。Mysql获取和显示这个类型的格式为“YYYY-MM-DD”。支持的时间范围为“1000-00-00”到“9999-12-31”。
Datetime类型:存储既有日期又有时间的数据。存储和显示的格式为“YYYY-MM-DD HH:MM:SS”。支持的时间范围是“1000-00-00 00:00:00”到“9999-12-31 23:59:59”。
Timestamp类型:也是存储既有日期又有时间的数据。存储和显示的格式跟Datetime一样。支持的时间范围是“1970-01-01 00:00:01”到“2038-01-19 03:14:07”。
所有不符合上面所述格式的数据都会被转换为相应类型的0值。(0000-00-00或者0000-00-00 00:00:00)
数据库中 日期的几种表示方法
Mysql中经常用来存储日期的数据类型有三种:Date、Datetime、Timestamp。
【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”。
【3】Timestamp类型:也是存储既有日期又有时间的数据。存储和显示的格式跟Datetime一样。支持的时间范围是“1970-01-01 00:00:01”到“2038-01-19 03:14:07”。
扩展资料
切记不要用字符串存储日期
这种存储日期的方式的优点还是有的,就是简单直白,容易上手。但是,这是不正确的做法,主要会有下面两个问题:
1、字符串占用的空间更大。
2、字符串存储的日期比较效率比较低(逐个字符进行比对),无法用日期相关的 API进行计算和比较。
DateTime类型没有时区信息的
DateTime类型是没有时区信息的(时区无关),DateTime类型保存的时间都是当前会话所设置的时区对应的时间。
当你的时区更换之后,比如你的服务器更换地址或者更换客户端连接时区设置的话,就会导致你从数据库中读出的时间错误。不要小看这个问题,很多系统就是因为这个问题闹出了很多笑话。
Timestamp和时区有关。Timestamp类型字段的值会随着服务器时区的变化而变化,自动换算成相应的时间,说简单点就是在不同时区,查询到同一个条记录此字段的值会不一样。
sql数据库中的时间类型
日期时间类型:time:
格式:hh:mm:ss[.nnnnnnn]
范围:00:00:00.0000000到23:59:59.9999999
精确度:100纳秒
存储大小(以字节为单位):3-5
用户定义的秒的小数精度:有
时区偏移量:无
date:
格式:YYYY-MM-DD
范围:0001-01-01到 9999-12-31
精确度:1天
存储大小(以字节为单位):3
用户定义的秒的小数精度:无
时区偏移量:无
smalldatetime:
格式:YYYY-MM-DD hh:mm:ss
范围:1900-01-01到 2079-06-06
精确度:1分钟
存储大小(以字节为单位):4
用户定义的秒的小数精度:无
时区偏移量:无
datetime:
格式:YYYY-MM-DD hh:mm:ss[.nnn]
范围:1753-01-01到 9999-12-31
精确度:0.00333秒
存储大小(以字节为单位):8
用户定义的秒的小数精度:无
时区偏移量:无
datetime2:
格式:YYYY-MM-DD hh:mm:ss[.nnnnnnn]
范围:0001-01-01 00:00:00.0000000到9999-12-31 23:59:59.9999999
精确度:100钠秒
存储大小(以字节为单位):6到 8
用户定义的秒的小数精度:有
时区偏移量:无
datetimeoffset:
格式:YYYY-MM-DD hh:mm:ss[.nnnnnnn] [+|-]hh:mm
范围:0001-01-01 00:00:00.0000000到9999-12-31 23:59:59.9999999(以UTC时间表示)
精确度:100钠秒
存储大小(以字节为单位):8到10
用户定义的秒的小数精度:有
时区偏移量:有
数据库时间格式的转换
c#
DateTime.ToString("yyyy-MM-DD")
需要用DateTime的时候在把STRING换回DateTime
=================================================================
Asp.net日期字符串格式化显示--DateTime.ToString()用法详解
我们经常会遇到对时间进行转换,达到不同的显示效果,默认格式为:2006-6-6 14:33:34
如果要换成成200606,06-2006,2006-6-6或更多的格式该怎么办呢?
这里将要用到:DateTime.ToString的方法(String, IFormatProvider)
示例:
using System;
using System.Globalization;
String format="D";
DateTime date=DataTime.Now;
Response.Write(date.ToString(format, DateTimeFormatInfo.InvariantInfo));
结果输出
Thursday, June 16, 2006
在这里列出了参数format格式详细用法
=======================
格式字符关联属性/说明
d ShortDatePattern
D LongDatePattern
f完整日期和时间(长日期和短时间)
F FullDateTimePattern(长日期和长时间)
g常规(短日期和短时间)
G常规(短日期和长时间)
m、M MonthDayPattern
r、R RFC1123Pattern
s使用当地时间的 SortableDateTimePattern(基于 ISO 8601)
t ShortTimePattern
T LongTimePattern
u UniversalSortableDateTimePattern用于显示通用时间的格式
U使用通用时间的完整日期和时间(长日期和长时间)
y、Y YearMonthPattern
下表列出了可被合并以构造自定义模式的模式
========================================
这些模式是区分大小写的;例如,识别“MM”,但不识别“mm”。如果自定义模式包含空白字符或用单引号括起来的字符,则输出字符串页也将包含这些字符。未定义为格式模式的一部分或未定义为格式字符的字符按其原义复制。
格式模式说明:
d月中的某一天。一位数的日期没有前导零。
dd月中的某一天。一位数的日期有一个前导零。
ddd周中某天的缩写名称,在 AbbreviatedDayNames中定义。
dddd周中某天的完整名称,在 DayNames中定义。
M月份数字。一位数的月份没有前导零。
MM月份数字。一位数的月份有一个前导零。
MMM月份的缩写名称,在 AbbreviatedMonthNames中定义。
MMMM月份的完整名称,在 MonthNames中定义。
y不包含纪元的年份。如果不包含纪元的年份小于 10,则显示不具有前导零的年份。
yy不包含纪元的年份。如果不包含纪元的年份小于 10,则显示具有前导零的年份。
yyyy包括纪元的四位数的年份。
gg时期或纪元。如果要设置格式的日期不具有关联的时期或纪元字符串,则忽略该模式。
h 12小时制的小时。一位数的小时数没有前导零。
hh 12小时制的小时。一位数的小时数有前导零。
H 24小时制的小时。一位数的小时数没有前导零。
HH 24小时制的小时。一位数的小时数有前导零。
m分钟。一位数的分钟数没有前导零。
mm分钟。一位数的分钟数有一个前导零。
s秒。一位数的秒数没有前导零。
ss秒。一位数的秒数有一个前导零。
f秒的小数精度为一位。其余数字被截断。
ff秒的小数精度为两位。其余数字被截断。
fff秒的小数精度为三位。其余数字被截断。
ffff秒的小数精度为四位。其余数字被截断。
fffff秒的小数精度为五位。其余数字被截断。
ffffff秒的小数精度为六位。其余数字被截断。
fffffff秒的小数精度为七位。其余数字被截断。
t在 AMDesignator或 PMDesignator中定义的 AM/PM指示项的第一个字符(如果存在)。
tt在 AMDesignator或 PMDesignator中定义的 AM/PM指示项(如果存在)。
z时区偏移量(“+”或“-”后面仅跟小时)。一位数的小时数没有前导零。例如,太平洋标准时间是“-8”。
zz时区偏移量(“+”或“-”后面仅跟小时)。一位数的小时数有前导零。例如,太平洋标准时间是“-08”。
zzz完整时区偏移量(“+”或“-”后面跟有小时和分钟)。一位数的小时数和分钟数有前导零。例如,太平洋标准时间是“-08:00”。
:在 TimeSeparator中定义的默认时间分隔符。
/在 DateSeparator中定义的默认日期分隔符。
% c其中 c是格式模式(如果单独使用)。如果格式模式与原义字符或其他格式模式合并,则可以省略“%”字符。
\ c其中 c是任意字符。照原义显示字符。若要显示反斜杠字符,请使用“\\”。
只有上面第二个表中列出的格式模式才能用于创建自定义模式;在第一个表中列出的标准格式字符不能用于创建自定义模式。自定义模式的长度至少为两个字符;例如,
DateTime.ToString("d")返回 DateTime值;“d”是标准短日期模式。
DateTime.ToString("%d")返回月中的某天;“%d”是自定义模式。
DateTime.ToString("d")返回后面跟有一个空白字符的月中的某天;“d”是自定义模式。
比较方便的是,上面的参数可以随意组合,并且不会出错,多试试,肯定会找到你要的时间格式
如要得到2005年06月这样格式的时间
可以这样写:
date.ToString("yyyy年MM月", DateTimeFormatInfo.InvariantInfo)
如此类推.
下面列出一些Asp.net中具体的日期格式化用法:
============================================
1.绑定时格式化日期方法:
<ASP:BOUNDCOLUMN DATAFIELD="JoinTime" DATAFORMATSTRING="{0:yyyy-MM-dd}">
<ITEMSTYLE WIDTH="18%"></ITEMSTYLE>
</ASP:BOUNDCOLUMN>
2.数据控件如DataGrid/DataList等的件格式化日期方法:
e.Item.Cell[0].Text= Convert.ToDateTime(e.Item.Cell[0].Text).ToShortDateString();
3.用String类转换日期显示格式:
String.Format("yyyy-MM-dd",yourDateTime);
4.用Convert方法转换日期显示格式:
Convert.ToDateTime("2005-8-23").ToString
("yyMMdd",System.Globalization.DateTimeFormatInfo.InvariantInfo);//支持繁体数据库
5.直接用ToString方法转换日期显示格式:
DateTime.Now.ToString("yyyyMMddhhmmss");
DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss")
6.只显示年月
DataBinder.Eval(Container.DataItem,"starttime","{0:yyyy-M}")
7.显示时间所有部分,包括:年月日时分秒
<asp:BoundColumn DataField="收款时间" HeaderText="收款时间"
DataFormatString="{0:yyyy-MM-dd HH24:mm:ss}">
</asp:BoundColumn>
好了,文章到这里就结束啦,如果本次分享的数据库时间格式和数据库中 日期的几种表示方法问题对您有所帮助,还望关注下本站哦!