我的编程空间,编程开发者的网络收藏夹
学习永远不晚

SQL高级日期函数的相关用法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

SQL高级日期函数的相关用法

这篇文章主要讲解了“SQL高级日期函数的相关用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SQL高级日期函数的相关用法”吧!

测试环境

SQL Server 2017

CHARINDEX

作用

会在第二个字符表达式中搜索一个字符表达式,这将返回第一个表达式(如果发现存在)的开始位置。

语法

CHARINDEX ( expressionToFind , expressionToSearch [ , start_location ] )

注:这是一个常用的字符搜索函数,起始下标是1,不是0。

如果加了起始下标,会从忽略起始下标前面的字符,往后面搜索。

不加起始值示例

SELECT CHARINDEX('数据','SQL数据库开发SQL数据库开发')

结果

SQL高级日期函数的相关用法

添加起始值示例

SELECT CHARINDEX('数据','SQL数据库开发SQL数据库开发',6)

结果

SQL高级日期函数的相关用法

CONCAT_WS

作用

以端到端的方式返回从串联或联接的两个或更多字符串值生成的字符串。 它会用第一个函数参数中指定的分隔符分隔连接的字符串值。 (CONCAT_WS 指示使用分隔符连接。)

语法

CONCAT_WS ( separator, argument1, argument2 [, argumentN]... )

注:CONCAT_WS 会忽略列中的 NULL 值。 用 ISNULL 函数包装可以为 null 的列,并提供默认值。

示例

SELECT CONCAT_WS('-','SQL','数据库',NULL,'开发')

结果:

SQL高级日期函数的相关用法

SOUNDEX

作用

返回一个由四个字符组成的代码 (SOUNDEX),用于评估两个字符串的相似性。

语法

SOUNDEX ( character_expression )

注:SOUNDEX 会根据字符串的发音,将字母数字字符串转换成一个由四个字符组成的代码。 该代码的第一个字符是 character_expression 的第一个字符,已转换为大写 。 代码的第二个字符到第四个字符是表示表达式中的字母的数字。 除非字母 A、E、I、O、U、H、W 和 Y 是字符串的首字母,否则将忽略这些字母。 如果需要生成一个四字符代码,将在末尾添加零

示例

SELECT SOUNDEX ('liyue'), SOUNDEX ('liyuee')

结果:

SQL高级日期函数的相关用法

说明两个的发音非常接近

DIFFERENCE

作用

返回一个整数值,用于度量两个不同字符表达式的 SOUNDEX() 值之间的差异

语法

DIFFERENCE ( character_expression , character_expression )

注:DIFFERENCE 比较两个不同的 SOUNDEX 值,并返回一个整数值。 该值用于度量 SOUNDEX 值匹配的程度,范围为 0 到 4。 值为 0 表示 SOUNDEX 值之间的相似性较弱或不相似;4 表示与 SOUNDEX 值非常相似,甚至完全相同。

DIFFERENCE 和 SOUNDEX 具有排序规则敏感度。

示例

SELECT   SOUNDEX ('liyue'), SOUNDEX ('liyuee') ,  DIFFERENCE('liyue', 'liyuee');

结果:

SQL高级日期函数的相关用法

返回的结果为4,进一步验证了我们上一个函数。

FORMAT

作用

返回使用指定格式和可选区域性格式化的值。 使用 FORMAT 函数将日期/时间和数字值格式化为识别区域设置的字符串。 对于一般的数据类型转换,请使用 CAST 或 CONVERT。

语法

FORMAT ( value, format [, culture ] )

注意

  •  FORMAT 将返回 NULL 错误,而不是非 valid 的 culture 。 例如,如果 format 中指定的值无效,则返回 NULL 。

  •  FORMAT 函数具有不确定性。

  •  FORMAT 依赖于 .NET Framework 公共语言运行时 (CLR) 的存在。

  •  此函数无法进行远程处理,因为它依赖于 CLR 的存在。 远程处理需要 CLR 的函数可能导致在远程服务器上出现错误。

日期格式示例

DECLARE @d DATETIME = '12/18/2019';  SELECT FORMAT ( @d, 'd', 'en-US' ) AS '美国格式'          ,FORMAT ( @d, 'd', 'en-gb' ) AS '英国格式'          ,FORMAT ( @d, 'd', 'de-de' ) AS '德国格式'          ,FORMAT ( @d, 'd', 'zh-cn' ) AS '中文格式';  SELECT FORMAT ( @d, 'D', 'en-US' ) AS '美国格式'          ,FORMAT ( @d, 'D', 'en-gb' ) AS '英国格式'          ,FORMAT ( @d, 'D', 'de-de' ) AS '德国格式'          ,FORMAT ( @d, 'D', 'zh-cn' ) AS '中文格式';

结果

SQL高级日期函数的相关用法

SQL高级日期函数的相关用法

自定义格式示例

SELECT FORMAT( GETDATE(), 'dd/MM/yyyy', 'zh-cn' ) AS '自定义日期'           ,FORMAT(123456789,'###-##-####') AS '自定义数字';

结果

SQL高级日期函数的相关用法

数值格式示例

SELECT FORMAT(1.127456, 'N', 'zh-cn') AS '四舍五入格式'           ,FORMAT(1.123456, 'G', 'zh-cn') AS '一般格式'           ,FORMAT(1.123456, 'C', 'zh-cn') AS '货币格式'

结果

SQL高级日期函数的相关用法

PATINDEX

作用

返回模式在指定表达式中第一次出现的起始位置;如果在所有有效的文本和字符数据类型中都找不到该模式,则返回零。该函数与CHARINDEX比较相似

语法

PATINDEX ( '%pattern%' , expression )

注:

  •  如果 pattern 或 expression 为 NULL,则 PATINDEX 返回 NULL 。

  •  PATINDEX 的起始位置为 1。

  •  PATINDEX 基于输入的排序规则执行比较。 若要以指定排序规则进行比较,则可以使用 COLLATE 将显式排序规则应用于输入。

示例

SELECT PATINDEX('%数据库%', 'SQL数据库开发');

结果

SQL高级日期函数的相关用法

在 PATINDEX 中使用通配符示例

使用 % 和 _ 通配符查找模式 '数'(后跟任意一个字符和 '库')在指定字符串中的开始位置(索引从 1 开始)

SELECT PATINDEX('%数_库%', 'SQL数据库开发');

结果

SQL高级日期函数的相关用法

QUOTENAME

作用

返回带有分隔符的 Unicode 字符串,分隔符的加入可使输入的字符串成为有效的 SQL Server 分隔标识符。

语法

QUOTENAME ( 'character_string' [ , 'quote_character' ] )

'character_string'

Unicode 字符数据构成的字符串。 character_string 是 sysname,且最多具有 128 个字符 。 超过 128 个字符的输入将返回 NULL。

'quote_character'

用作分隔符的单字符字符串。 可以是单引号 (')、左方括号或右方括号 ([])、双引号 (")、左圆括号或右圆括号 (())、大于或小于符号 (><)、左大括号或右大括号 ({}) 或反引号 (`) 。 如果提供了不可接受的字符,则返回 NULL。 如果未指定 quote_character,则使用方括号 。

示例

SELECT QUOTENAME('abc[]def');

结果

SQL高级日期函数的相关用法

REPLICATE

作用

以指定的次数重复字符串值。

语法

( string_expression ,integer_expression )

示例

SELECT '2'+REPLICATE ('3',5)

结果

SQL高级日期函数的相关用法

REVERSE

作用

返回字符串值的逆序。

语法

REVERSE ( string_expression )

示例

SELECT REVERSE('SQL数据库开发')

结果

SQL高级日期函数的相关用法

STRING_AGG

作用

串联字符串表达式的值,并在其间放置分隔符值。 不能在字符串末尾添加分隔符。

语法

STRING_AGG ( expression, separator ) [ <order_clause> ]

注意:

  •  STRING_AGG 是一个聚合函数,用于提取行中的所有表达式,并将这些表达式串联成一个字符串。 表达式值隐式转换为字符串类型,然后串联在一起。 隐式转换为字符串的过程遵循现有的数据类型转换规则。 

  •  如果输入表达式的类型为 VARCHAR,则分隔符的类型不能是 NVARCHAR。

  •  null 值会被忽略,且不会添加相应的分隔符。 若要为 null 值返回占位符,请使用 ISNULL 函数,如示例 B 中所示。

  •  STRING_AGG 适用于任何兼容级别。

示例

WITH t AS (   SELECT '张三' Name,'语文' Course,89 Score   UNION ALL   SELECT '张三' ,'数学' ,91     UNION ALL   SELECT '李四' ,'语文' ,78     UNION ALL   SELECT '李四' ,'数学' ,96    )   SELECT Name,   STRING_AGG(Course,',') Course ,   STRING_AGG(Score,',') Score   FROM t   GROUP  BY Name

结果

SQL高级日期函数的相关用法

STRING_SPLIT

作用

一个表值函数,它根据指定的分隔符将字符串拆分为子字符串行。

语法

STRING_SPLIT ( string , separator )

注意

STRING_SPLIT 输入包含分隔子字符串的字符串,并输入一个字符用作分隔符。 STRING_SPLIT 输出其行包含子字符串的单列表。 输出列的名称为“value”。

输出行可以按任意顺序排列。 顺序不保证与输入字符串中的子字符串顺序匹配。 可以通过在 SELECT 语句中使用 ORDER BY 子句覆盖最终排序顺序 (ORDER BY value)。

当输入字符串包含两个或多个连续出现的分隔符字符时,将出现长度为零的空子字符串。 空子字符串的处理方式与普通子字符串相同。 可以通过使用 WHERE 子句筛选出包含空的子字符串的任何行 (WHERE value <> '')。 如果输入字符串为 NULL,则 STRING_SPLIT 表值函数返回一个空表。

示例一

SELECT Value FROM STRING_SPLIT('SQL-数据库-开发', '-');

结果

SQL高级日期函数的相关用法

示例二

WITH t AS (   SELECT 1 ID,'张三' Name,'足球,篮球,羽毛球' Hobby   UNION ALL   SELECT 2 ,'李四','足球,游泳,爬山'   )  SELECT ID, Name, Value  FROM t  CROSS APPLY STRING_SPLIT(Hobby, ',');

结果

SQL高级日期函数的相关用法

注意:返回的列不再是Hobby,而是Value,必须写成Value,否则得不到想要的结果。这个与STRING_AGG()函数的功能相反。

STUFF

作用

STUFF 函数将字符串插入到另一个字符串中。 它从第一个字符串的开始位置删除指定长度的字符;然后将第二个字符串插入到第一个字符串的开始位置。

语法

STUFF ( character_expression , start , length , replaceWith_expression )

注意:

  •  如果开始位置或长度值是负数,或者开始位置大于第一个字符串的长度,则返回 Null 字符串。 如果开始位置为 0,则返回 Null 值。如果要删除的长度大于第一个字符串的长度,则删除到第一个字符串中的第一个字符。

  •  如果结果值大于返回类型支持的最大值,则会引发错误。

示例

SELECT STUFF('abcdef', 2, 3, 'ijklmn');

结果

SQL高级日期函数的相关用法

感谢各位的阅读,以上就是“SQL高级日期函数的相关用法”的内容了,经过本文的学习后,相信大家对SQL高级日期函数的相关用法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

SQL高级日期函数的相关用法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

PHP日期相关函数的介绍及用法

这篇文章主要介绍“PHP日期相关函数的介绍及用法”,在日常操作中,相信很多人在PHP日期相关函数的介绍及用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP日期相关函数的介绍及用法”的疑惑有所帮助!接下来
2023-06-20

sql中日期函数的用法

日期函数是用于在 sql 查询中操作日期和时间的函数。常见的日期函数包括获取当前日期(curdate())、格式化日期(date_format())、在日期中添加或减去时间间隔(date_add()、date_sub())、提取时间部分(e
sql中日期函数的用法
2024-05-07

PHP中的日期相关函数介绍

这篇文章主要介绍“PHP中的日期相关函数介绍”,在日常操作中,相信很多人在PHP中的日期相关函数介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP中的日期相关函数介绍”的疑惑有所帮助!接下来,请跟着小编
2023-06-20

PHP日期函数实现时间相关功能的方法总结

PHP日期函数是PHP语言中的一个重要特性,可以实现各种时间相关的功能。在本篇文章中,将总结一些常用的PHP日期函数的用法,帮助读者更好地理解和使用它们。一、获取当前时间PHP日期函数中最常用的一个函数就是date()函数,可以获取当前的日
PHP日期函数实现时间相关功能的方法总结
2023-11-20

SQL Server中的日期时间函数怎么使用

本篇内容主要讲解“SQL Server中的日期时间函数怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SQL Server中的日期时间函数怎么使用”吧!1、getdate():获取当前日期
2023-06-30

MySQL学习之日期函数的用法详解

目录获取 系统时间 函数日期格式化 函数日期函数练习①日期函数练习②日期计算的注意事项日期偏移计算计算日期之间相隔的天数获取 系统时间 函数“NOW()” 函数 能够获得当前系统日期和时间,格式如下:“
2022-08-12

VB.NET计算数字相关函数的使用方法

这篇文章将为大家详细讲解有关VB.NET计算数字相关函数的使用方法,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。VB.NET编程语言一经出现,就凭借其强大的功能受到广大开发人员的青睐。它的应
2023-06-17

Javascript日期时间函数的使用方法举例

Javascript提供丰富的日期时间函数,用于操作和转换日期时间值。涵盖获取当前日期时间、设置日期时间、获取日期时间组件、格式化、比较、数学运算等功能。本文提供详细示例,帮助理解和使用这些函数。
Javascript日期时间函数的使用方法举例
2024-04-02

使用Pandas 实现MySQL日期函数的解决方法

这篇文章主要介绍了用Pandas 实现MySQL日期函数的效果,Python是很灵活的语言,达成同一个目标或有多种途径,我提供的只是其中一种解决方法,需要的朋友可以参考下
2023-02-22

php中格利高里历法日期与儒略日计数相互转换的示例分析

小编给大家分享一下php中格利高里历法日期与儒略日计数相互转换的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!公历的标准名称为格里高利历,是现在国际通用的
2023-06-20

编程热搜

目录