如何向数据库中插入DateTime 数据类型

如何向数据库中插入DateTime 数据类型,第1张

private void button1_Click(object sender, SystemEventArgs e)

public override void Display(int depth)

{

ConsoleWriteLine(new string('-', depth) + name);

foreach (Component component in children)

{

componentDisplay(depth + 2);

}

}

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

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

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

3Timestamp类型:也是存储既有日期又有时间的数据。存储和显示的格式跟Datetime一样。支持的时间范围是“1970-01-01 00:00:01”到“2038-01-19 03:14:07”。

扩展资料

切记不要用字符串存储日期

这种存储日期的方式的优点还是有的,就是简单直白,容易上手。但是,这是不正确的做法,主要会有下面两个问题:

1、字符串占用的空间更大。

2、字符串存储的日期比较效率比较低(逐个字符进行比对),无法用日期相关的 API 进行计算和比较。

DateTime 类型没有时区信息的

DateTime 类型是没有时区信息的(时区无关) ,DateTime 类型保存的时间都是当前会话所设置的时区对应的时间。

当你的时区更换之后,比如你的服务器更换地址或者更换客户端连接时区设置的话,就会导致你从数据库中读出的时间错误。不要小看这个问题,很多系统就是因为这个问题闹出了很多笑话。

Timestamp 和时区有关。Timestamp 类型字段的值会随着服务器时区的变化而变化,自动换算成相应的时间,说简单点就是在不同时区,查询到同一个条记录此字段的值会不一样。

将DateTime类型转化成string类型即可,转化方法需要使用 SystemDateTime 类的 ToString() 方法,并为其指定格式字符串。

MSDN 中,SystemGlobalizationDateTimeFormatInfo 类的概述里对模式字符串有非常详细的说明,因此,这里我只对常用的一些格式进行说明,首先请看下表:

d 月中的某一天 一位数的日期没有前导

dd 月中的某一天 一位数的日期有一个前导零

ddd 周中某天的缩写名称 在 AbbreviatedDayNames 中定义

dddd 周中某天的完整名称 在 DayNames 中定义

M 月份数字 一位数的月份没有前导零

MM 月份数字 一位数的月份有一个前导零

MMM 月份的缩写名称 在 AbbreviatedMonthNames 中定义

MMMM 月份的完整名称 在 MonthNames 中定义

y 不包含纪元的年份 如果不包含纪元的年份小于 10,则显示不具有前导零的年份

yy 不包含纪元的年份 如果不包含纪元的年份小于 10,则显示具有前导零的年份

yyyy 包括纪元的四位数的年份

h 12 小时制的小时 一位数的小时数没有前导零

hh 12 小时制的小时 一位数的小时数有前导零

H 24 小时制的小时 一位数的小时数没有前导零

HH 24 小时制的小时 一位数的小时数有前导零

m 分钟 一位数的分钟数没有前导零

mm 分钟 一位数的分钟数有一个前导零

s 秒 一位数的秒数没有前导零

ss 秒 一位数的秒数有一个前导零

为了便于理解,不妨试试下面的程序:

private void TestDateTimeToString() { DateTime now = DateTimeNow; string format; thistextBox1Text = ""; format = "yyyy-MM-dd HH:mm:ss"; thistextBox1AppendText(format + ": " + nowToString(format) + "\n"); format = "yy年M日d日"; thistextBox1AppendText(format + ": " + nowToString(format) + "\n");} 

这段程序将输出结果:

yyyy-MM-dd HH:mm:ss: 2002-08-26 17:03:04

yy年M日d日: 02年8日26日

DateTime dt = DateTimeNow;

// Label1Text = dtToString();//2005-11-5 13:21:25

// Label2Text = dtToFileTime()ToString();//127756416859912816

// Label3Text = dtToFileTimeUtc()ToString();//127756704859912816

// Label4Text = dtToLocalTime()ToString();//2005-11-5 21:21:25

// Label5Text = dtToLongDateString()ToString();//2005年11月5日

// Label6Text = dtToLongTimeString()ToString();//13:21:25

// Label7Text = dtToOADate()ToString();//386615565508218

// Label8Text = dtToShortDateString()ToString();//2005-11-5

// Label9Text = dtToShortTimeString()ToString();//13:21

// Label10Text = dtToUniversalTime()ToString();//2005-11-5 5:21:25

// 2005-11-5 13:30:284412864

// Label1Text = dtYearToString();//2005

// Label2Text = dtDateToString();//2005-11-5 0:00:00

// Label3Text = dtDayOfWeekToString();//Saturday

// Label4Text = dtDayOfYearToString();//309

// Label5Text = dtHourToString();//13

// Label6Text = dtMillisecondToString();//441

// Label7Text = dtMinuteToString();//30

// Label8Text = dtMonthToString();//11

// Label9Text = dtSecondToString();//28

// Label10Text = dtTicksToString();//632667942284412864

// Label11Text = dtTimeOfDayToString();//13:30:284412864

// Label1Text = dtToString();//2005-11-5 13:47:04

// Label2Text = dtAddYears(1)ToString();//2006-11-5 13:47:04

// Label3Text = dtAddDays(11)ToString();//2005-11-6 16:11:04

// Label4Text = dtAddHours(11)ToString();//2005-11-5 14:53:04

// Label5Text = dtAddMilliseconds(11)ToString();//2005-11-5 13:47:04

// Label6Text = dtAddMonths(1)ToString();//2005-12-5 13:47:04

// Label7Text = dtAddSeconds(11)ToString();//2005-11-5 13:47:05

// Label8Text = dtAddMinutes(11)ToString();//2005-11-5 13:48:10

// Label9Text = dtAddTicks(1000)ToString();//2005-11-5 13:47:04

// Label10Text = dtCompareTo(dt)ToString();//0

//// Label11Text = dtAdd()ToString();//问号为一个时间段

// Label1Text = dtEquals("2005-11-6 16:11:04")ToString();//False

// Label2Text = dtEquals(dt)ToString();//True

// Label3Text = dtGetHashCode()ToString();//1474088234

// Label4Text = dtGetType()ToString();//SystemDateTime

// Label5Text = dtGetTypeCode()ToString();//DateTime

// Label1Text = dtGetDateTimeFormats('s')[0]ToString();//2005-11-05T14:06:25

// Label2Text = dtGetDateTimeFormats('t')[0]ToString();//14:06

// Label3Text = dtGetDateTimeFormats('y')[0]ToString();//2005年11月

// Label4Text = dtGetDateTimeFormats('D')[0]ToString();//2005年11月5日

// Label5Text = dtGetDateTimeFormats('D')[1]ToString();//2005 11 05

// Label6Text = dtGetDateTimeFormats('D')[2]ToString();//星期六 2005 11 05

// Label7Text = dtGetDateTimeFormats('D')[3]ToString();//星期六 2005年11月5日

// Label8Text = dtGetDateTimeFormats('M')[0]ToString();//11月5日

// Label9Text = dtGetDateTimeFormats('f')[0]ToString();//2005年11月5日 14:06

// Label10Text = dtGetDateTimeFormats('g')[0]ToString();//2005-11-5 14:06

// Label11Text = dtGetDateTimeFormats('r')[0]ToString();//Sat, 05 Nov 2005 14:06:25 GMT

Label1Text = stringFormat("{0:d}",dt);//2005-11-5

Label2Text = stringFormat("{0:D}",dt);//2005年11月5日

Label3Text = stringFormat("{0:f}",dt);//2005年11月5日 14:23

Label4Text = stringFormat("{0:F}",dt);//2005年11月5日 14:23:23

Label5Text = stringFormat("{0:g}",dt);//2005-11-5 14:23

Label6Text = stringFormat("{0:G}",dt);//2005-11-5 14:23:23

Label7Text = stringFormat("{0:M}",dt);//11月5日

Label8Text = stringFormat("{0:R}",dt);//Sat, 05 Nov 2005 14:23:23 GMT

Label9Text = stringFormat("{0:s}",dt);//2005-11-05T14:23:23

Label10Text = stringFormat("{0:t}",dt);//14:23

Label11Text = stringFormat("{0:T}",dt);//14:23:23

Label12Text = stringFormat("{0:u}",dt);//2005-11-05 14:23:23Z

Label13Text = stringFormat("{0:U}",dt);//2005年11月5日 6:23:23

Label14Text = stringFormat("{0:Y}",dt);//2005年11月

Label15Text = stringFormat("{0}",dt);//2005-11-5 14:23:23

Label16Text = stringFormat("{0:yyyyMMddHHmmssffff}",dt);

C# 时间(几个常用时间,程序运行计时,页面运行计时)

DateTime now = SystemDateTimeNow;

nowToString(); //显示: 2006/08/30 17:31:02

nowToString("yyyy-MM-dd hh:mm:ss"); //显示: 2006-08-30 05:39:11

SystemDateTimeMaxValueToString(); //显示: 9999/12/31 23:59:59

SystemDateTimeMinValueToString(); //显示: 0001/01/01 0:00:00

nowToLongDateString(); //显示: 2006年8月30日

nowToLongTimeString(); //显示: 17:34:23

nowToShortTimeString(); //显示: 17:34

nowToString() + " " + nowMillisecondToString(); //显示: 2006/08/30 17:35:19 484

这个数据库中存储的datetime格式都是2012-09-27 10:57:10000这种的\x0d\如果想用你的格式存储只能把类型改为varchar了\x0d\再者就是你读取的时候可以把-改为用replace(time,'-','') \x0d\---------------\x0d\你把传过来的转换成datetime不就行了

以上就是关于如何向数据库中插入DateTime 数据类型全部的内容,包括:如何向数据库中插入DateTime 数据类型、数据库中 日期的几种表示方法、asp.net中如何生日的DATetime类型写入数据库的string类型等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/sjk/9768440.html

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

发表评论

登录后才能评论

评论列表(0条)

保存