mysql——时间字段类型与C#中datetime
一、引言
做项目的时候开始纠结于用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相关推荐
- MySQL字段类型与Java中类型的对应
MySQL字段类型与Java中类型的对应 在设计数据的时候,需要与Java里的类型进行匹配,我自己在设计过程中参考的内容如下 编号 类型名称 显示长度 数据库类型 Java类型 备注/描述 0 VAR ...
- mysql密码字段类型_MySQL字段类型最全解析
**前言:** 要了解一个数据库,我们必须了解其支持的数据类型.MySQL 支持大量的字段类型,其中常用的也有很多.前面文章我们也讲过 int 及 varchar 类型的用法,但一直没有全面讲过字段类 ...
- mysql修改字段类型语句
mysql中字段为TEXT类型的内容怎么修改? 可以把字段类型改成MEDIUMTEXT(最多存放16777215个字符)或者LONGTEXT(最多存放4294967295个字符). MySQLsupp ...
- Mysql修改字段类型
修改字段类型.字段名.字段注释.类型长度.字段默认值 mysql修改字段类型: --能修改字段类型.类型长度.默认值.注释 --对某字段进行修改 ALTER TABLE 表名 MODIFY ...
- c 读取mysql 时间字段_MySQL中的时间字段的几种数据类型比较
1.序言 最近在项目开发时,对于MySQL数据库中的有关时间的字段该选用何种类型,引发了一些争论.所以做了一些简单的研究,看了一些blog,和官方文档.最后做出一个自己的总结. 2.类型比较 IN ...
- MySQL时间字段效率_MYSQL数据库时间字段INT,TIMESTAMP,DATETIME性能效率比较
正 文: 在数据库设计的时候,我们经常会需要设计时间字段,在MYSQL中,时间字段可以使用int.timestamp.datetime三种类型来存储,那么这三种类型哪一种用来存储时间性能比较高,效率好 ...
- 修改mysql 视图字段类型_MySQL中的数据类型,列选项,视图
列的数据类型 整型 类型 取值范围 tinyint -128 - 127 smallint -32768 - 32767(几万) mediumint -8388608 - 8388607(几百万) i ...
- laravel中的ORM模型修改created_at,updated_at,deleted_at三个时间字段类型
laravel框架中的ORM模型极大的简化了数据库操作,同时也提高了数据操作安全性. 在laravel框架ORM模型中默认会有三个时间字段,created_at,updated_at,deleted_ ...
- mysql 修改字段类型为字符串_MySQL中字段类型与合理的选择字段类型
原标题:MySQL中字段类型与合理的选择字段类型 字段类型 数值 MySQL 的数值数据类型可以大致划分为两个类别,一个是 整数,另一个是 浮点数或小数. 许多不同的子类型对这些类别中的每一个都是可用 ...
最新文章
- linux查看特定文件的位置
- C语言 满分代码:L1-044 稳赢 (15分)(解题报告)
- erlang下lists模块sort(排序)方法源码解析(二)
- php 公钥格式转换,如何把OpenSSH公钥转换成OpenSSL格式
- 多线程中的互斥控制程序代码_互斥锁解决 Python 中多线程共享全局变量的问题...
- 我,第一次做项目经理,干赔了
- java 蓝牙串口_java_android_0057 蓝牙串口助手源码
- 批量生成条形码——《超级处理器》应用
- ET框架关于opCode的理解
- Fiddler报文分析-断点应用、模拟网络限速-HTTPS的 拦截
- oa 服务器 微信,微信OA:一种新的办公方式
- loss函数取对数的作用和意义
- 第三章 C语言运算符与表达式练习题
- 华为MateBook D14 安装ubuntu16 wifi、蓝牙、触控板驱动问题解决
- 第十八届全国大学生智能汽车竞赛—英飞凌芯片支持计划
- Android9.0驱动调试之GPIO
- 第十六章、文件服务器之二: SAMBA 服务器
- Nd2d引擎学习笔记
- 在手机界坐二望一的华为,还要补哪些课?
- 直播预约丨 微服务x容器开源开发者 Meetup 北京站回顾 PPT 下载
热门文章
- 机器人参数校准的原理
- 问答| 为什么四轮驱动机器人(SSMR)的质心(COM)没有横向分速度vy呢?
- python爬图片_Python爬虫:彼岸图网图片爬取-Go语言中文社区
- 事件对象使用方法大全(源码解析)
- [Vue warn]: Duplicate keys detected: '0'. This may cause an update error. found in解决办法
- mysql之为表添加一个字段并设定默认值
- linux编写周期性计划任务,linux任务计划及周期性任务计划
- mysql建表影响效率_关于MySQL建表对DML的影响【转】
- 初识ObjectBox--Android平台
- 2.java运算符与逻辑控制