首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SQL Server 2012学习笔记 (四) ------ SQL Server 函数

SQL Server中提供了许多内置函数,按函数种类可以分为聚合函数、数学函数、字符串函数、日期时间函数、转换函数和元数据函数等6种。...进行查询操作时,经常能够用到SQL函数,使用SQL函数会给查询带来很多的方便. 1.1 字符串函数    字符串函数作用于char、varchar、binary和varbinary数据类型以及可以隐式转换为...1.3 数据类型转换函数   同时处理不同数据类型的值时,SQL Server一般会自动进行隐式类型转换。...当遇到类型转换的问题时,可以使用SQL Server所提供的CAST和CONVERT函数。这两种函数不但可以将指定的数据类型转换为另一种数据类型,还可用来获得各种特殊的数据格式。...SQL Server中数据类型转换分为两种,分别如下: 隐性转换: SQL Server自动处理某些数据类型的转换。

2K20
您找到你想要的搜索结果了吗?
是的
没有找到

BIT类型SQL Server中的存储大小

SQL Server中BIT类型到底占用了多少空间?...例如这样一个表: CREATE TABLE tt ( c1 INT PRIMARY KEY, c2 BIT NOT NULL, c3 CHAR(2) NOT NULL ) SQL Server存储表中的数据时先是将表中的列按照原有顺序分为定长和变长...其中前两个字节是文件号,后面的是页面号,所以文件号是1,页面号是118(0x76换成十进制就是118) (3)使用DBCC page命令查看该页的内部结构: DBCC traceon(3604) DBCC...关于数据行的具体格式我就不在这里多说了,SQL Server 2005技术内幕 存储引擎》中有详细介绍。我们插入的数据从第5个字节开始,是01000000 016161。...插入的数据从第5个字节开始03ff…… 这儿03就是c1、c3、c5的数据,03换成二进制就是00000011。c1列对应最低位1,c3对应倒数第二1,c5对应倒数第三0。

3.5K10

故障分析 | MySQL 的隐式转换导致诡异现象的案例一则

select * from test where a = 0; 2问题分析 为了比对说明,我们分别用 MySQL、Oracle 和 SQL Server 进行模拟。...SQL 错误 [245] [S0001]: varchar 值 '测试a' 转换成数据类型 int 时失败。...小结 通过以上对比,可以知道 Oracle 和 SQL Server 对 "字符型=数值型" 的条件,会自动将字符型类型转成数值型,如果因为值的问题不能转成数值型,就会提示错误,而 SQL Server...从官方文档[1] 的这几段内容,我们可以得到一些线索, MySQL 中将 VARCHAR 转成 INT,会自动截断字符串,例如 "1测试" 会截成 "1" ,通过如下判断,可以证明。...而不是像 Oracle、SQL Server 这些数据库针对这种问题直接报错,所以才出现了这个诡异的问题。

23140

见识一下SQL Server隐式转换处理的不同

构造where varchar2=nvarchar2,因为varchar2精度比nvarchar2小,所以需要将varchar2换为nvarchar2类型,由于varchar2是左值,对索引列做了函数操作...,因为varchar2精度比nvarchar2小,所以需要将varchar2换为nvarchar2类型,但此时的varchar2是右值,虽然用了函数,但是并未影响左值的索引字段nvarchar2,因此即使出现了隐式转换...Server隐式转换的问题,发现还是有区别。...SQL Server刚接触,如果操作和原理上讲的不对的,请各位指正。...的隐式转换,是绿色的,允许用Seek, 因此SQL Server中,不同的排序规则,隐式转换的影响可能是不同的,有的会影响索引的选择,有的就无影响,我不知道SQL Server为什么这么多排序规则,

1K20

SQL函数 CONVERT

第一个是与MS SQL Server兼容的通用 IRIS标量函数,它接受三个参数。 第二个是带有两个参数的 ODBC标量函数。 下面的文本将分别处理这两种形式的CONVERT。...使用CONVERT(或CAST)时,如果字符数据类型(如CHAR或VARCHAR)没有指定长度,则默认的最大长度为30个字符。...支持以下格式代码; 输出两位数年份的格式代码列第一列; 输出四数年或不输出年的格式列第二列: Two-digit year codes Four-digit year codes Format...换为SQL_VARCHAR时,日期和时间被转换为相应的ODBC表示; 数字数据类型值转换为字符串表示。...冒号后面的数字限制为3换为整数数据类型或SQL_DOUBLE数据类型时,数据值(包括日期和时间)将转换为数字表示。 对于SQL_DATE,这是自1841年1月1日以来的天数。

5.1K21

学习SQL Server这一篇就够了

Windows NT 推出后,Microsoft与Sybase SQL Server 的开发上就分道扬镳了,Microsoft 将SQL Server移植到Windows NT系统上,专注于开发推广...Sybase 则较专注于SQL ServerUNⅨ操作系统上的应用。...2.2、SQL Server的下载 操作系统:Windows 10 专业版 64(版本号,19041.508) 安装版本:sql server 2008 r2 enterprise 迅雷下载:...当n1~24之间时,实际上是定义了一个real型数据,存储长度为4字节,精度为7有效数字。当n25~53之间时,存储长度为8字节,精度为15有效数字。当缺省n时,代表n25~53之间。...字符串值TRUE和FALSE可以转换为以下bit 值:TRUE转换为1,FALSE转换为0。 4.6、字符型 字符型用于存储字符串,输入字符串时,需将串中的符号用单引号括起来,如‘abc’。

5.8K30

SQL Server数据库高级进阶之分布式唯一ID生成实战演练

2)、UUID随机数:采用无意义字符串,没有排序UUID使用字符串形式存储,数据量大时查询效率比较低。...参考资料:为什么要使用自增ID作为主键 - Mr-blue - 博客园  https://www.cnblogs.com/lanqi/p/10185172.html 二、SQL Server分布式唯一...ID生成实战演练 唯一ID可以标识数据的唯一性,分布式系统中生成唯一ID的方案有很多,常见的方式大概有以下三种: 2.1、依赖数据库,使用SQL SERVER无序UUID和有序UUID。...特别是分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。...基于时间戳+随机数:DateTime.Now.ToString("yyyyMMddHHmmssfffffff")+Random随机数

2K20

SQL Server数据库高级进阶之分布式唯一ID生成实战演练

2)、UUID随机数:采用无意义字符串,没有排序UUID使用字符串形式存储,数据量大时查询效率比较低。...参考资料:为什么要使用自增ID作为主键 - Mr-blue - 博客园 https://www.cnblogs.com/lanqi/p/10185172.html 二、SQL Server分布式唯一...ID生成实战演练 唯一ID可以标识数据的唯一性,分布式系统中生成唯一ID的方案有很多,常见的方式大概有以下三种: 2.1、依赖数据库,使用SQL SERVER无序UUID和有序UUID。...特别是分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。...基于时间戳+随机数:DateTime.Now.ToString("yyyyMMddHHmmssfffffff")+Random随机数

1.1K30

MySQL 8.0.14版本新功能详解

修改内容: 1.X Plugin现在在其错误处理类中包含5SQLSTATE错误代码。以前,SQL错误的SQLSTATE错误代码返回给客户机,但是只公开特定于mysql的错误编号。...(错误# 28735058) 2.查询文档集合时,如果在SQL查询中将布尔值用作占位符的参数,则会返回意外的结果。现在为布尔值添加了一个新的翻译专门化,以便在这种情况下正确处理它们。...(错误# 28227037) 3.返回数据之前,X协议现在总是将检索到的数据转换为utf8mb4字符集(使用utf8mb4_general_ci排序规则)。...(错误# 28180155) 4.X协议现在支持SQL prepare功能。...(Bug #90337, Bug #27828236) 从MySQL 5.7服务器导入储到运行MySQL 8.0的服务器时,当使用8.0服务器不支持的SQL模式时,ER_WRONG_VALUE_FOR_VAR

1.6K20

你准备好使用 MySQL 10 了吗?

让我们来看看我们 MySQL Server 中做了什么来为此做准备,以及你可以和应该做些什么来证明你的应用程序的未来。...这被广泛使用,例如, mysqldump 等工具中,以提供向后兼容的 SQL 语句。...还有一个向后兼容性问题:MySQL 8.0 并不总是能够不进行修改的情况下从 MySQL 10 或更高版本加载储。如果使用版本 10 或更高版本中引入的功能,储将包含 8.0 会误解的版本注释。...储不太可能在 8.0 中加载而没有错误。每当出现六数的版本注释时,您可能会遇到语法错误。...无论如何, MySQL 10 发布时,8.0 预计将是 EOL,因此 8.0 中从版本 10 导入储的用例应该非常有限。

22640

Transact-SQL基础

Transact-SQL Transact-SQL(又称 T-SQL),是 Microsoft SQL Server 和 Sybase SQL Server 上的 ANSI SQL 实现,与 Oracle...varbinary 的 ANSI SQL 同义词为 binary varying。 二进制常量以 0x(一个零和小写字母 x)开始,后跟模式的十六进制表示形式。...例如,0x2A 表示十六进制值 2A,它等于十进制值 42 或单字节模式 00101010。...每个 Microsoft SQL Server 排序规则都有一个代码页,该代码页定义表示 char、varchar 和 text 值中每个字符的模式。可为个别的列和字符常量分配不同的代码页。...SQL Server 会自动将数据从一种数据类型转换为另一种数据类型。例如,将 smallint 与 int 进行比较时,比较之前 smallint 会被隐式转换为 int。

3.4K20

SqlServer常用语句及函数

use 数据库名(是要删除表所在的那个数据库的名称) GO declare @sql varchar(8000) while (select count(*) from sysobjects where...table ' + name exec(@sql) end 二、SqlServer常用函数 1、concert() 函数 concert() 函数是把日期转换为新数据类型的通用函数。...如果通过CAST()函数将这个值转换为decimal类型,需要首先定义decimal值的精度与小数位数。本例中,精度与小数位数分别为9 与2。精度是总的数字位数,包括小数点左边和右边位数的总和。...SELECT CAST('12.5' AS decimal(9,2)) decimal数据类型结果网格中将显示有效小数位: 12.50 4.5、精度和小数位数的默认值分别是18与0。...如果在decimal类型中不提供这两个值,SQL Server将截断数字的小数部分,而不会产生错误。 SELECT CAST('12.5' AS decimal) 结果是一个整数值:12

1.9K30

MySQL字符集终极指南--进阶篇

LC_NUMERIC="zh_CN.GBK": 控制数字的格式,例如数字的千分隔符。LC_TIME="zh_CN.GBK": 控制日期和时间的格式。...- `character_set_server`: 服务器的默认字符集。- `collation_server`: 服务器的默认排序规则。2....处理文本数据时,计算机系统通常会将外部编码(例如用户输入或文件中的编码)转换为内部统一的编码格式。这样做的目的是简化字符处理和操作,因为内码通常是为了适应特定系统或应用程序的需求而设计的。...2)与平台无关: 内码通常设计为与特定平台或硬件无关,这样可以确保不同系统之间传输和处理文本时的一致性。3)转换: 当文本从外部源(例如文件、网络或用户输入)进入系统时,它通常会被转换为内码。...\xb0\xe6\x8d\xae\xe5\xba'鏁版嵁搴 顺利转换为了4个不同的汉字!

1.4K31

MySQL数据库面试题和答案(一)

精度和占用存储空间不同,浮点数的精度最高可达8,有4个字节;双精度存储浮点数的精度最高可达18,有8个字节。 3、什么叫做堆表(Heap tables)? -在内存中找到堆表。...-使用命令UNIX_TIMESTAMP可将MySQL时间戳转换为Unix时间戳。 -可以使用FROM_UNIXTIME命令将Unix时间戳转换为MySQL时间戳。 8、BLOB是什么?...18、MySQL中,i-am-a-dummy标志的使用是什么? 如果WHERE子句不存在,使用i-am-dummy标志将使SQL引擎拒绝执行任何更新或删除。它在使用delete语句时非常有用。...一个默认的位置数据windows目录是C:\ mysql数据或C:\Program Files\MySQL\MySQL Server 5.0 \ \数据. 22、MySQL中,什么是正则表达式?...如何在MySQL中将表导出为XML文件?

7.5K31

数据库char varchar nchar nvarchar,编码Unicode,UTF8,GBK等,Sql语句中文前为什么加N(一次线上数据存储乱码排查)

SQL Server 2019 (15.x) 起,使用启用了 UTF-8 的排序规则时,这些数据类型会存储 Unicode 字符数据的整个范围,并使用 UTF-8 字符编码。...从 SQL Server 2012 (11.x) 起,使用启用了补充字符 (SC) 的排序规则时,这些数据类型会存储 Unicode 字符数据的整个范围,并使用 UTF-16 字符编码。...先找了一条出现乱码的数据,原库取出来然后进行utf8码,然后再解码。讲道理同一个编码解码出来存储应该还是原来的字符串,所以我才会好奇去试验。试验后发现果然没有什么问题。 ?...然后我就猜测到是GBK编码问题,因为python3里面字符串的默认编码也是Unicode,测试下把1006⁃267X(2020)02⁃0548⁃10成GBK。 ?...最后就是参数前加N执行 ? 这下结果就正常了。细心的你是否发发现v1字段还是乱码,因为我为了测试varchar单字节,即使我加了N一样的是乱码。

2.1K30

关于SQL Server中将数值类型转换为字符串的问题

今天把一些数据导入到SQL Server的时候遇到有个列被导入成float类型,而我实际需要的是varchar类型,所以要进行类型转换,转换时遇到了一点问题,所以写这篇博客记录一下。...SQL Server中的数值类型分为两种,一种是精确的数值类型,具体的数据类型有:bit、tinyint、smallint、int、bigint、smallmoney、money和decimal,这些数据类型能够精确的表明某以数值...帮助文档中说到float 或 real 转换为字符数据时的 style 值: 0(默认值)最大为 6 位数。根据需要使用科学记数法。 1 始终为 8 值。始终使用科学记数法。...比较简单的办法就是将近似数据转换为精确数据,然后再将精确数据转换成字符串。...比如要输出4小数,那么转换代码是: declare @i float set @i=123456789.12 print 'test:'+convert(varchar(20),convert(decimal

1.9K10

MySQL基础SQL编程学习2

), Address varchar(255), City varchar(255), CHECK (P_Id>0) -- 关键点 ) -- SQL Server / Oracle /...---- 0x01 SQL 基础函数 描述:SQL 拥有很多可用于计数和计算的内建函数,可以帮助我们更方便的存储以及获取数据; Date 函数 描述:处理日期的时候我们需要确保所插入的日期的格式,与数据库中日期列的格式相匹配...使用 %v 周(01-53)星期一是一周的第一天,与 %x 使用 %W 星期名 %w 周的天(0=星期日, 6=星期六) %X 年,其中的星期日是周的第一天,4 ,与 %V 使用 %x 年,...其中的星期一是周的第一天,4 ,与 %v 使用 %Y 年,4 %y 年,2 SQL Server Date 函数 函数 描述 GETDATE() 返回当前的日期和时间 DATEPART()...| 时间 :2020-01-12 06:24:18 WeiyiGeek. ---- 0x02 通用数据类型 描述:数据类型定义列中存放的值的种类,创建 SQL 表时决定表中的每个列将要存储的数据的类型

7.2K30
领券