sql数据类型

从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值

ⅰ亾dé卋堺 提交于 2020-04-07 19:28:59
最近在ASP.NET MVC中遇到一个问题,如题,在使用EF数据模型的时候,要去添加一条新的数据到Sqlserver数据库,在之前项目中并没有出现该异常,所以去扒了扒demo,发现有几个字段(数据库类型为datetime)savechange的时候默认绑定了datetime.now。问题就在这里,我的新项目并没有给定这几个字段的数据。下面总结下: 触发该错误的条件如下: SQL Server数据库版本中的字段类型为datetime2 数据库中,某个要进行Add或者Edit的字段的数据类型为datetime,比如表A中的today字段,类型为datetime。而后台代码进行数据库操作时,并没有给today(datetime类型)赋值。结果就是VS2015编译的时候默认将其类型编译为datetime2,导致用EF进行add和edit操作的时候出现该异常。 解决方案: 给这些字段一个值(不管它是否在数据库设置了默认值),并且日期要大于1753年1月1日,这是最简单的方法。 将数据库类型修改为datetime?类型,也就是说允许为空。 修改数据库字段类型为datetime2类型,前提是数据库要支持该类型。 在C#中用new DateTime(year,month,day,hour,minute,second)来限制精度,原因之后会在datetime2和datetime的区别中提到。

Oracle date和timestamp区别

不羁的心 提交于 2020-04-02 15:14:43
<转自> http://blog.csdn.net/huaguoming/article/details/8693679 在今天的工作中,学到了以下几个知识点: 一、date和timestamp 的区别 date类型是Oracle常用的日期型变量,他的时间间隔是秒。两个日期型相减得到是两个时间的间隔,注意单位是“天”。例如:查看一下当前距离伦敦奥运会开幕还有多长时间: select to_date('2012-7-28 03:12:00','yyyy-mm-dd hh24:mi:ss')-sysdate from dual 结果是:92.2472685185185天,然后你根据相应的时间换算你想要的间隔就行!这个结果可能对程序员有用,对于想直接看到结果的人,这个数字还不是很直观,所以,就引出了timestamp类型 timestamp是DATE类型的扩展,可以精确到小数秒( fractional_seconds_precision),可以是 0 to9,缺省是6。两个timestamp相减的话,不能直接的得到天数书,而是得到,多少天,多少小时,多少秒等,例如:同样查看一下当前距离伦敦奥运会开幕还有多长时间: select to_timestamp('2012-7-28 03:12:00','yyyy-mm-dd hh24:mi:ss')-systimestamp from dual

第四节:SQLServer数据类型详解

回眸只為那壹抹淺笑 提交于 2020-03-30 12:31:23
一. 系统数据类型 前言:    数据类型是一种属性,用于指定对象可保存的数据的类型,SQL Server中支持多种数据类型,包括字符类型、数值类型以及日期类型等。数据类型相当于一个容器,容器的大小决定了装的东西的多少,将数据分为不同的类型可以节省磁盘空间和资源。   Sql Server 还能自动限制每个数据类型的取值范围,例如定义了一个类型为int的字段,如果插入数据时插入的值的大小在smallint或者tinyint范围之内, Sql Server 会自动将类型转换为smallint 或者tinyint,这样一来,在存储数据时,占用的存储空间只有int的1/2或则1/4。 1. 整数类型 (1). bigint (2). int (3). smallint (4). tinyint 2. 浮点类型 (1). real (2). float (3). decimal (4). numeric 3. 字符串类型 (1). char(n) (2). varchar(n|max) (3). nchar(n) (4). nvarchar(n|max) 4. 日期和时间类型 (1). date (2). time (3). datetime (4). datetime2 (5). samalldatetime (6). datetimeoffset 5. 文本和图像类型 6. 货币类型

SQL学习笔记

独自空忆成欢 提交于 2020-03-28 04:16:35
SQL 学习笔记 创建数据库 /*- 创建文件夹 project-*/ : exec xp_cmdshell 'mkdir D:\project' --D:\project 为路径 /*- 创建数据库 -*/ : use master go -- 查找数据库: if exists(select * from sysdatabases where name = ' 数据库名 ') -- 删除数据库: drop database 数据库名 go -- 创建数据库: create database 数据库名 on primary -- 可选 ( name = ' 数据库名 _data', -- 逻辑名 filename = 'D:\project\ 数据库名 _data.mdf', -- 物理名 size = 大小 mb, -- 大小 maxsize = 大小 mb, -- 最大容量 filegrowth = 1 -- 增长率 _ 按 1mb 增长 , 当等于 0 时表示不增长 ) log on -- 可选 ( name = ' 数据库名 _log', -- 逻辑名 filename = 'D:\project\ 数据库名 _log.ldf', -- 物理名 size = 大小 mb, -- 大小 maxsize = 大小 mb, -- 最大容量 filegrowth = 1% --

360°全方位比较PostgreSQL和MySQL

假如想象 提交于 2020-03-27 23:30:46
360°全方位比较PostgreSQL和MySQL 一、原文 https://www.enterprisedb.com/blog/postgresql-vs-mysql-360-degree-comparison 二、摘要 本文对MySQL和PostgreSQL进行详细的比较,方便选择。 1、为什么使用PostgreSQL 2、为什么使用MySQL 3、易用性 4、语法 5、数据类型 6、复制与集群 7、视图 8、触发器 9、存储过程 10、查询 11、分区 12、表的可伸缩性 13、NoSQL能力 14、安全 15、分析函数 16、GUI工具 17、性能 18、Adoption 19、最佳环境 三、PG vs MySQL:选择哪个? PostgreSQL和MySQL都是最流行的开源数据库。MySQL被认为是世界上最流行的数据库,而PostgreSQL被认为是世界上最先进的数据库。MySQL并不完全符合SQL标准,并且很多PG上的特性并不支持。这就是为什么PG受到大量开发者喜欢的原因,并且现在PG越来越流行。 前几年,Oracle收购了MySQL,导致MySQL的出现两个版本:商业版和社区版。对于后者,由于Oracle控制了MySQL的开发,受到了广大使用者的批评。 PostgreSQL是世界上最受欢迎的数据库:他支持大量企业级特性和功能。PG由postgresql全球社区开发

sql 2005 数据库字段类型说明

狂风中的少年 提交于 2020-03-25 10:53:49
数据类型 类型 描 述 bit 整型 bit 数据类型是整型,其值只能是0、1或空值。这种数据类型用于存储只有两种可能值的数据,如Yes 或No、True 或Fa lse 、On 或Off int 整型 int 数据类型可以存储从- 2 31 (-2147483648)到2 31 (2147483 647)之间的整数。存储到数据库的几乎所有数值型的数据都可以用这种数据类型。这种数据类型在数据库里占用4个字节 smallint 整型 smallint 数据类型可以存储从- 2 15 (-32768)到2 15 (32767)之间的整数。这种数据类型对存储一些常限定在特定范围内的数值型数据非常有用。这种数据类型在数据库里占用2 字节空间 tinyint 整型 tinyint 数据类型能存储从0到255 之间的整数。它在你只打算存储有限数目的数值时很有用。 这种数据类型在数据库中占用1 个字节 numeric 精确数值型 numeric数据类型与decimal 型相同 decimal 精确数值型 decimal 数据类型能用来存储从-10 38 -1到10 38 -1的固定精度和范围的数值型数据。使用这种数据类型时,必须指定范围和精度。 范围是小数点左右所能存储的数字的总位数。精度是小数点右边存储的数字的位数 money 货币型 money 数据类型用来表示钱和货币值

MySQL 数据类型说明解释

徘徊边缘 提交于 2020-03-23 07:11:17
在 MySQL 中,有三种主要的类型:Text(文本)、Number(数字)和 Date/Time(日期/时间)类型。 Text 类型: 数据类型 描述 CHAR(size) 保存固定长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的长度。最多 255 个字符。 VARCHAR(size) 保存可变长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的最大长度。最多 255 个字符。 注释: 如果值的长度大于 255,则被转换为 TEXT 类型。 TINYTEXT 存放最大长度为 255 个字符的字符串。 TEXT 存放最大长度为 65,535 个字符的字符串。 BLOB 用于 BLOBs(Binary Large OBjects)。存放最多 65,535 字节的数据。 MEDIUMTEXT 存放最大长度为 16,777,215 个字符的字符串。 MEDIUMBLOB 用于 BLOBs(Binary Large OBjects)。存放最多 16,777,215 字节的数据。 LONGTEXT 存放最大长度为 4,294,967,295 个字符的字符串。 LONGBLOB 用于 BLOBs (Binary Large OBjects)。存放最多 4,294,967,295 字节的数据。 ENUM(x,y,z,etc.) 允许您输入可能值的列表。可以在

MySQL:性能优化之数据类型,SQL,八种连接

南笙酒味 提交于 2020-03-19 17:52:54
一、mysql数据类型优化原则 (1) 能够使用最小数据类型存储时,尽量使用最小数据类型存储(前提是要评估字段值的真实数据存储范围)      eg:create table aaa(id1 int(10) zerofill,id2 int (10));  (1) int(n) 中的 n代表宽度,表示没有设定宽度的时候,用0填充,需要配合zerofill来使用。 eg: insert into aaa values(12,11); (2) varchar 存储变长的字符串,即根据存入的值的长度来动态变化 存储空间:   非空:65533字节   可空:65532字节 优点:节省空间,操作简单 缺点:在update的时候,如果数据的长度变化了,就会去申请空间,从而有额外的工作,对性能有影响。 应用场景:1.字符串最大长度比平均真实值大的比较多,这个时候就会用。    2.更新频率比较低的字符串字段 (3) char 存储定长的字符串 存储长度:create table t (char(10) not null)   非空:存储255字节   可空:存储254字节 应用场景:   1.适合存储比较短的字符串   2.存储固定的长度或者存储长度比较接近的字符串     例如:手机号、MD5加密的密码、邮编等   3.经常变更的数据(不需要释放空间重新申请,即不会产生内存碎片)   4

MySQL 中的数据类型介绍

无人久伴 提交于 2020-03-19 00:50:12
1、MySQL 数据类型 MySQL中定义数据字段的类型对你数据库的优化是非常重要的。 MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。 2、数值类型(12) 2.1、整数类型(6) 一张图就能解释清楚了: INTEGER同INT。 2.2、定点数(2) DECIMAL和NUMERIC类型在MySQL中视为相同的类型。它们用于保存必须为确切精度的值。 使用方式如下: salary DECIMAL ( 5 , 2 ) 下面的介绍将基于上面这个例子。 我们看到其中有两个参数,即DECIMAL(M,D),其中M表示十进制数字总的个数,D表示小数点后面数字的位数,上例中的取值范围为-999.99~999.99。 如果存储时,整数部分超出了范围(如上面的例子中,添加数值为1000.01),MySql就会报错,不允许存这样的值。 如果存储时,小数点部分若超出范围,就分以下情况: 若四舍五入后,整数部分没有超出范围,则只警告,但能成功操作并四舍五入删除多余的小数位后保存。如999.994实际被保存为999.99。 若四舍五入后,整数部分超出范围,则MySql报错,并拒绝处理。如999.995和-999.995都会报错。 M的默认取值为10,D默认取值为0。如果创建表时,某字段定义为decimal类型不带任何参数,等同于decimal(10,0)。带一个参数时

SQL 通用数据类型解析

眉间皱痕 提交于 2020-03-16 10:02:44
SQL 通用数据类型 数据类型定义列中存放的值的种类。 SQL 通用数据类型 数据库表中的每个列都要求有名称和数据类型。Each column in a database table is required to have a name and a data type. SQL 开发人员必须在创建 SQL 表时决定表中的每个列将要存储的数据的类型。数据类型是一个标签,是便于 SQL 了解每个列期望存储什么类型的数据的指南,它也标识了 SQL 如何与存储的数据进行交互。 下面的表格列出了 SQL 中通用的数据类型: 数据类型 描述 CHARACTER(n) 字符/字符串。固定长度 n。 VARCHAR(n) 或 CHARACTER VARYING(n) 字符/字符串。可变长度。最大长度 n。 BINARY(n) 二进制串。固定长度 n。 BOOLEAN 存储 TRUE 或 FALSE 值 VARBINARY(n) 或 BINARY VARYING(n) 二进制串。可变长度。最大长度 n。 INTEGER(p) 整数值(没有小数点)。精度 p。 SMALLINT 整数值(没有小数点)。精度 5。 INTEGER 整数值(没有小数点)。精度 10。 BIGINT 整数值(没有小数点)。精度 19。 DECIMAL(p,s) 精确数值,精度 p,小数点后位数 s。例如:decimal(5