一、引言

做项目的时候开始纠结于用2013-01-01 12-12-12存储还是用 2013-01-01存储,这个设计到的问题是mysql中时间字段的选择问题:date、time或者datetime;

第二个纠结的地方是C#中是否有数据类型与之一一对应,答案是否定的,就一个datetime,这个datetime可以容纳大部分时间类型数据;

最重要的大家记住,反正mysql中时间字段最终也是字符串,就是有规则的字符串。

主要转换流程跟字符串的区别就是多了C#中的datatime:

正向传递这样

string time=Convert.ToDateTime(dt.Rows[i]["F_START_TIME"]).ToString("yyyy.MM.dd");

逆向传递类似,就是先将字符串转换为datatime类型,然后写入sql插入数据库。

二、mysql中的时间字段类型

mysql有5种表示时间值的日期和时间类型,分别为、DATE,TIME,YEAR,DATETIME,TIMESTAMP。

TIMESTAMP类型有专有的自动更新特性,

TIMESTAMP类型有专有的自动更新特性,

TIMESTAMP类型有专有的自动更新特性,

类型 大小
(字节)
范围 格式 用途
DATE 3 1000-01-01/9999-12-31 YYYY-MM-DD 日期值
TIME 3 '-838:59:59'/'838:59:59' HH:MM:SS 时间值或持续时间
YEAR 1 1901/2155 YYYY 年份值
DATETIME 8 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值
TIMESTAMP 4 1970-01-01 00:00:00/2037 年某时 YYYYMMDD HHMMSS 混合日期和时间值,时间戳

三、C#中datetime操作

获得当前系统时间: DateTime dt = DateTime.Now;
Environment.TickCount可以得到“系统启动到现在”的毫秒值
DateTime now = DateTime.Now;
Console.WriteLine(now.ToString("yyyy-MM-dd"));  //按yyyy-MM-dd格式输出s
Console.WriteLine(dt.ToString());    //  26/11/2009 AM 11:21:30
Console.WriteLine(dt.ToFileTime().ToString());   //   129036792908014024
// Converts the value of the current System.DateTime object to a Windows file time
Console.WriteLine(dt.ToFileTimeUtc().ToString());  //     129036792908014024
// Converts the value of the current System.DateTime object to a Windows file time
Console.WriteLine(dt.ToLocalTime().ToString());   //       26/11/2009 AM 11:21:30
// Converts the value of the current System.DateTime object to local time.
Console.WriteLine(dt.ToLongDateString().ToString());   //      2009年11月26日
Console.WriteLine(dt.ToLongTimeString().ToString());  //      AM 11:21:30
Console.WriteLine(dt.ToOADate().ToString());   //      40143.4732731597
Console.WriteLine(dt.ToShortDateString().ToString());   //     26/11/2009
Console.WriteLine(dt.ToShortTimeString().ToString());   //     AM 11:21
Console.WriteLine(dt.ToUniversalTime().ToString());   //       26/11/2009 AM 3:21:30
Console.WriteLine(dt.Year.ToString());   //        2009
Console.WriteLine(dt.Date.ToString());   //        26/11/2009 AM 12:00:00
Console.WriteLine(dt.DayOfWeek.ToString());  //       Thursday
Console.WriteLine(dt.DayOfYear.ToString());   //       330
Console.WriteLine(dt.Hour.ToString());       //        11
Console.WriteLine(dt.Millisecond.ToString());   //     801        (毫秒)
Console.WriteLine(dt.Minute.ToString());   //      21
Console.WriteLine(dt.Month.ToString());   //       11
Console.WriteLine(dt.Second.ToString());   //      30
Console.WriteLine(dt.Ticks.ToString());   //       633948312908014024

Console.WriteLine(dt.TimeOfDay.ToString());   //       12:29:51.5181524

四、总结

  • 数据库与C#中时间类型选择;
  • 时间数据传递流程;
  • mysql中的时间字段类型;
  • C#中datetime的操作;

mysql——时间字段类型与C#中datetime相关推荐

  1. MySQL字段类型与Java中类型的对应

    MySQL字段类型与Java中类型的对应 在设计数据的时候,需要与Java里的类型进行匹配,我自己在设计过程中参考的内容如下 编号 类型名称 显示长度 数据库类型 Java类型 备注/描述 0 VAR ...

  2. mysql密码字段类型_MySQL字段类型最全解析

    **前言:** 要了解一个数据库,我们必须了解其支持的数据类型.MySQL 支持大量的字段类型,其中常用的也有很多.前面文章我们也讲过 int 及 varchar 类型的用法,但一直没有全面讲过字段类 ...

  3. mysql修改字段类型语句

    mysql中字段为TEXT类型的内容怎么修改? 可以把字段类型改成MEDIUMTEXT(最多存放16777215个字符)或者LONGTEXT(最多存放4294967295个字符). MySQLsupp ...

  4. Mysql修改字段类型

    修改字段类型.字段名.字段注释.类型长度.字段默认值 mysql修改字段类型:      --能修改字段类型.类型长度.默认值.注释 --对某字段进行修改 ALTER  TABLE 表名 MODIFY ...

  5. c 读取mysql 时间字段_MySQL中的时间字段的几种数据类型比较

    1.序言 ​ 最近在项目开发时,对于MySQL数据库中的有关时间的字段该选用何种类型,引发了一些争论.所以做了一些简单的研究,看了一些blog,和官方文档.最后做出一个自己的总结. 2.类型比较 IN ...

  6. MySQL时间字段效率_MYSQL数据库时间字段INT,TIMESTAMP,DATETIME性能效率比较

    正 文: 在数据库设计的时候,我们经常会需要设计时间字段,在MYSQL中,时间字段可以使用int.timestamp.datetime三种类型来存储,那么这三种类型哪一种用来存储时间性能比较高,效率好 ...

  7. 修改mysql 视图字段类型_MySQL中的数据类型,列选项,视图

    列的数据类型 整型 类型 取值范围 tinyint -128 - 127 smallint -32768 - 32767(几万) mediumint -8388608 - 8388607(几百万) i ...

  8. laravel中的ORM模型修改created_at,updated_at,deleted_at三个时间字段类型

    laravel框架中的ORM模型极大的简化了数据库操作,同时也提高了数据操作安全性. 在laravel框架ORM模型中默认会有三个时间字段,created_at,updated_at,deleted_ ...

  9. mysql 修改字段类型为字符串_MySQL中字段类型与合理的选择字段类型

    原标题:MySQL中字段类型与合理的选择字段类型 字段类型 数值 MySQL 的数值数据类型可以大致划分为两个类别,一个是 整数,另一个是 浮点数或小数. 许多不同的子类型对这些类别中的每一个都是可用 ...

最新文章

  1. linux查看特定文件的位置
  2. C语言 满分代码:L1-044 稳赢 (15分)(解题报告)
  3. erlang下lists模块sort(排序)方法源码解析(二)
  4. php 公钥格式转换,如何把OpenSSH公钥转换成OpenSSL格式
  5. 多线程中的互斥控制程序代码_互斥锁解决 Python 中多线程共享全局变量的问题...
  6. 我,第一次做项目经理,干赔了
  7. java 蓝牙串口_java_android_0057 蓝牙串口助手源码
  8. 批量生成条形码——《超级处理器》应用
  9. ET框架关于opCode的理解
  10. Fiddler报文分析-断点应用、模拟网络限速-HTTPS的 拦截
  11. oa 服务器 微信,微信OA:一种新的办公方式
  12. loss函数取对数的作用和意义
  13. 第三章 C语言运算符与表达式练习题
  14. 华为MateBook D14 安装ubuntu16 wifi、蓝牙、触控板驱动问题解决
  15. 第十八届全国大学生智能汽车竞赛—英飞凌芯片支持计划
  16. Android9.0驱动调试之GPIO
  17. 第十六章、文件服务器之二: SAMBA 服务器
  18. Nd2d引擎学习笔记
  19. 在手机界坐二望一的华为,还要补哪些课?
  20. 直播预约丨 微服务x容器开源开发者 Meetup 北京站回顾 PPT 下载

热门文章

  1. 机器人参数校准的原理
  2. 问答| 为什么四轮驱动机器人(SSMR)的质心(COM)没有横向分速度vy呢?
  3. python爬图片_Python爬虫:彼岸图网图片爬取-Go语言中文社区
  4. 事件对象使用方法大全(源码解析)
  5. [Vue warn]: Duplicate keys detected: '0'. This may cause an update error. found in解决办法
  6. mysql之为表添加一个字段并设定默认值
  7. linux编写周期性计划任务,linux任务计划及周期性任务计划
  8. mysql建表影响效率_关于MySQL建表对DML的影响【转】
  9. 初识ObjectBox--Android平台
  10. 2.java运算符与逻辑控制