/**//***************************************************************************
DATEPART
返回代表指定日期的指定日期部分的整数。

语法
DATEPART ( datepart , date )

参数
datepart
是指定应返回的日期部分的参数。下表列出了 Microsoft? SQL Server? 识别的日期部分和缩写。

日期部分         缩写
year             yy, yyyy
quarter          qq, q
month            mm, m
dayofyear        dy, y
day              dd, d
week             wk, ww
weekday          dw
Hour             hh
minute           mi, n
second           ss, s
millisecond      ms

SELECT DATEPART(dy, getdate())
****************************************************************************/
SELECT DATEPART(m, 0), DATEPART(d, 0), DATEPART(yy, 0)

SELECT DATEPART(m, getdate()), DATEPART(d, getdate()), DATEPART(yy, getdate())
SELECT DATEPART(mm, getdate()), DATEPART(dd, getdate()), DATEPART(yyyy, getdate())

SELECT DATENAME(month, getdate()) AS 'Month Name'

USE pubs
SELECT @@DBTS

/**//*******************************************************
DATALENGTH
返回任何表达式所占用的字节数。

语法
DATALENGTH ( expression )

参数
expression

任何类型的表达式。

返回类型
int

NULL 的 DATALENGTH 的结果是 NULL。

*******************************************************/
use pubs
SELECT DATALENGTH(au_lname + ','
  + au_fname),datalength(au_lname),datalength(au_fname)
FROM authors

use northwind
select USER_NAME()

use pubs
SELECT au_lname, au_fname
FROM authors
WHERE SOUNDEX(au_fname) = 'M240'

/**//*********************************************************
STR
由数字数据转换来的字符数据。

语法
STR ( float_expression [ , length [ , decimal ] ] )

参数
float_expression

是带小数点的近似数字 (float) 数据类型的表达式。不要在 STR 函数中将函数或子查询用作 float_expression。

length

是总长度,包括小数点、符号、数字或空格。默认值为 10。

decimal

是小数点右边的位数。

返回类型
char
------------------------
例:
select Cast(123.000045656 as float)
select str(123.000045656,10,7)
*********************************************************/
SELECT str(job_id) + ' ' +
   str(job_lvl) as 'job_id/job_lvl'
FROM employee

/**//******************************************************
聚合函数
*******************************************************/
SELECT SUM(price) total_price
FROM titles

SELECT count(*)-count(price) total_price
FROM titles

use northwind
SELECT unitprice,(unitprice * .9) as 九折
FROM products

use pubs
SELECT (lname + ', ' + fname) as name
FROM employee

--------///
use pubs
SELECT sales.qty, titles.price
FROM sales INNER JOIN titles ON
sales.title_id = titles.title_id
ORDER BY
(sales.qty * titles.price)

select sales.qty,titles.price
from sales,titles where
sales.title_id=titles.title_id
order by sales.qty * titles.price
------///
/**//************************************************
字符串截取
语法
SUBSTRING ( expression , start , length )
expression:要截取的字符串或字段
start:开始位置
length:截取子串长度
************************************************/
use pubs
SELECT au_lname, au_fname,phone
FROM authors
WHERE
(SUBSTRING(phone, 1, 3) = '415')

/**//*************************************************
日期函数
*************************************************/
use pubs
SELECT ord_num, ord_date
FROM sales
WHERE
(ord_date >=
  DATEADD(day, -10, GETDATE()))

select GETUTCDATE()

/**//***********************************************
ROUND
返回数字表达式并四舍五入为指定的长度或精度
***********************************************/
use northwind
SELECT ProductID, ProductName,
    CASE CategoryID
        WHEN 1 THEN ROUND( (UnitPrice * .6), 2)
        WHEN 2 THEN ROUND( (UnitPrice * .7), 2)
        WHEN 3 THEN ROUND( (UnitPrice * .8), 2)
        ELSE ROUND( (UnitPrice * .9), 2)
    END AS DiscountPrice
FROM Products

use northwind
SELECT ( CAST(ProductID AS VARCHAR(10)) + ': '
       + ProductName ) AS ProductIDName
FROM Products

SELECT Prd.ProductID, Prd.ProductName,
       (   SELECT SUM(OD.UnitPrice * OD.Quantity)
           FROM Northwind.dbo.[Order Details] AS OD
           WHERE OD.ProductID = Prd.ProductID
       ) AS SumOfSales
FROM Northwind.dbo.Products AS Prd
ORDER BY Prd.ProductID

/**//***********************************************
运算符号 + - * / ......
***********************************************/
SELECT ProductID, ProductName,
       UnitPrice * UnitsInStock AS InventoryValue
FROM Northwind.dbo.Products

/**//*
FLOOR
返回小于或等于所给数字表达式的最大整数。

RAND
返回 0 到1 之间的随机float 值。

CAST 和 CONVERT
将某种数据类型的表达式显式转换为另一种数据类型。CAST 和 CONVERT 提供相似的功能。
*/
DECLARE @counter smallint
SET @counter = 1
WHILE @counter < 5
   BEGIN
      SELECT cast(floor(RAND(@counter)*@counter+1) as int) Random_Number
      SET NOCOUNT ON
      SET @counter = @counter + 1
      SET NOCOUNT OFF
   END
GO

SELECT FLOOR(123.45), FLOOR(-123.45), FLOOR($123.45)

/**//************************************************
SIGN
返回给定表达式的正 (+1)、零 (0) 或负 (-1) 号。
************************************************/
DECLARE @value real
SET @value = -1
WHILE @value < 2
   BEGIN
      SELECT SIGN(@value)
      SET NOCOUNT ON
      SELECT @value = @value + 1
      SET NOCOUNT OFF
   END
SET NOCOUNT OFF
GO

/**//***********************************************
CEILING
返回大于或等于所给数字表达式的最小整数。
************************************************/
SELECT CEILING($123.45), CEILING($-123.45), CEILING($0.0)

/**//***********************************************
PATINDEX
返回指定表达式中某模式第一次出现的起始位置;如果在全部有效的文本和字符数据类型中没有找到该模式,则返回零。

语法
PATINDEX ( '%pattern%' , expression )

参数
pattern

一个字符串。可以使用通配符,但 pattern 之前和之后必须有 % 字符(搜索第一个和最后一个字符时除外)。pattern 是短字符数据类型类别的表达式。

expression

一个表达式,通常为要在其中搜索指定模式的列,expression 为字符串数据类型类别。

返回类型
int
************************************************/
USE pubs
GO
SELECT PATINDEX('%wonderful%', notes)
FROM titles
WHERE title_id = 'TC3218'
GO

USE pubs
GO
SELECT PATINDEX('%won_erful%', notes)
FROM titles
WHERE title_id = 'TC3218'
GO

SELECT PATINDEX('%[A,Z,0-9]%[A,Z,0-9]%[A,Z,0-9]%','XYZABC123')

select patindex('AB%','ABXXXXXXXXX')
/**//***********************************************************************
datalength
数据长度

REVERSE
返回字符表达式的反转。
************************************************************************/
select datalength('Profusely illustrated in color, this makes a w')
SELECT PATINDEX(REVERSE('%wonberful%'),REVERSE('Profusely illustrated in color, this makes a wonderful gift book wonberful for a cuisine-oriented friend.'))

select REVERSE('Profusely illustrated in color, this makes a wonderful gift book wonberful for a cuisine-oriented friend.')

select * from pubs.dbo.titles

/**//************************************************************************
SPACE
返回由重复的空格组成的字符串。

语法
SPACE ( integer_expression )

参数
integer_expression

是表示空格个数的正整数。如果 integer_expression 为负,则返回空字符串。

返回类型
char

****************************************
RTRIM
截断所有尾随空格后返回一个字符串。

LTRIM
删除起始空格后返回字符表达式。

*************************************************************************/
USE pubs
GO
SELECT au_lname,au_fname,RTRIM(au_lname) + ',' + SPACE(2) +  LTRIM(au_fname),au_lname+',  '+au_fname
FROM authors
ORDER BY au_lname, au_fname
GO

/**//************************************************************************
CHARINDEX
返回字符串中指定表达式的起始位置。

*************************************************************************/
USE pubs
GO
SELECT CHARINDEX('wonderful', notes)
FROM titles
WHERE title_id = 'TC3218'
GO

/**//************************************************************************
LEN
返回给定字符串表达式的字符(而不是字节)个数,其中不包含尾随空格。

DATALENGTH
返回任何表达式所占用的字节数。

(一个字母数字占1个字节,一个汉字占两个字节)
*************************************************************************/
select datalength('Profusely illustrated in color, this makes a w')
--46个字节
select len('Profusely illustrated in color, this makes a w')
--46个字符

select datalength('返回字符串中指定表达式的起始位置')
--32个字节

select len('返回字符串中指定表达式的起始位置')
--16个字符

/**//***********************************************************************
REPLACE
用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式。

语法
REPLACE ( 'string_expression1' , 'string_expression2' , 'string_expression3' )

参数
'string_expression1'

待搜索的字符串表达式。string_expression1 可以是字符数据或二进制数据。

'string_expression2'

待查找的字符串表达式。string_expression2 可以是字符数据或二进制数据。

'string_expression3'

替换用的字符串表达式。string_expression3 可以是字符数据或二进制数据。
************************************************************************/
--示例
--下例用 xxx 替换 abcdefghi 中的字符串 cde。

SELECT REPLACE('abcdefghicde','cde','xxx')

/**//***********************************************************************
STR
由数字数据转换来的字符数据。

语法
STR ( float_expression [ , length [ , decimal ] ] )

参数
float_expression

是带小数点的近似数字 (float) 数据类型的表达式。不要在 STR 函数中将函数或子查询用作 float_expression。

length

是总长度,包括小数点、符号、数字或空格。默认值为 10。

decimal

是小数点右边的位数。

返回类型
char
************************************************************************/
SELECT STR(123.45, 6, 1)

/**//************************************************************************
DIFFERENCE
以整数返回两个字符表达式的 SOUNDEX 值之差。
*************************************************************************/
USE pubs
GO
-- Returns a DIFFERENCE value of 4, the least possible difference.
SELECT SOUNDEX('Green'),
  SOUNDEX('Greene'), DIFFERENCE('Green','Greene')
GO
-- Returns a DIFFERENCE value of 0, the highest possible difference.
SELECT SOUNDEX('Blotchet-Halls'),
  SOUNDEX('Greene'), DIFFERENCE('Blotchet-Halls', 'Greene')
GO

/**//**************************************************************************
STUFF
删除指定长度的字符并在指定的起始点插入另一组字符。

语法
STUFF ( character_expression , start , length , character_expression )

参数
character_expression

由字符数据组成的表达式。character_expression 可以是常量、变量,也可以是字符或二进制数据的列。

start

是一个整形值,指定删除和插入的开始位置。如果 start 或 length 是负数,则返回空字符串。如果 start 比第一个 character_expression 长,则返回空字符串。

length

是一个整数,指定要删除的字符数。如果 length 比第一个 character_expression 长,则最多删除到最后一个 character_expression 中的最后一个字符。

返回类型
如果 character_expression 是一个支持的字符数据类型,则返回字符数据。如果 character_expression 是一个支持的 binary 数据类型,则返回二进制数据。

注释
可以嵌套字符串函数。
***************************************************************************/

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

--下面是结果集:aijklmnef
--开始位置是2 删除3个字符  即'abc' 在第二个位置插入'ijklmn'

/**//**************************************************************************
REPLICATE
以指定的次数重复字符表达式。

***************************************************************************/
--A. 使用 REPLICATE
--下例重复两遍每个作者的名字。

USE pubs
SELECT REPLICATE(au_fname, 2)
FROM authors
ORDER BY au_fname

--B. 使用 REPLICATE、SUBSTRING 和 SPACE
--下例使用 REPLICATE、SUBSTRING 和 SPACE 生成 authors 表中的所有作者的电话和传真列表。

-- Replicate phone number twice because the fax number is identical to
-- the author telephone number.
USE pubs
GO
SELECT (UPPER(au_lname) + ',' + SPACE(1) + au_fname) as AllName,SUBSTRING((UPPER(au_lname) + ',' + SPACE(1) + au_fname), 1, 35)
   AS Name, phone AS Phone, REPLICATE(phone,1) AS Fax
FROM authors
ORDER BY au_lname, au_fname
GO

--C. 使用 REPLICATE 和 DATALENGTH
--本例中,当数值从数字数据类型转换为字符型或 Unicode 型时,从左填充数字,使其达到指定的长度。

--char 和 varchar
--固定长度 (char) 或可变长度 (varchar) 字符数据类型。
USE Northwind
GO
DROP TABLE t1
GO
CREATE TABLE t1
(
 c1 varchar(3),
 c2 char(3)
)
GO
INSERT INTO t1 VALUES ('2', '2')
INSERT INTO t1 VALUES ('37', '37')
INSERT INTO t1 VALUES ('597', '597')
GO
SELECT DATALENGTH(c1) as tempC1,REPLICATE('0', 3 - DATALENGTH(c1)) + c1 AS [Varchar Column],
       DATALENGTH(c2) as tempC2,REPLICATE('0', 3 - DATALENGTH(c2)) + c2 AS [Char Column]
FROM t1
GO

/**//*********************************************************************************************
SUBSTRING
字符串截取:字符串expression 从指定的位置(start) 截取指定长度(length)的字符串

语法

SUBSTRING ( expression , start , length )

参数
expression

是字符串、二进制字符串、text、image、列或包含列的表达式。不要使用包含聚合函数的表达式。

start

是一个整数,指定子串的开始位置。

length

是一个整数,指定子串的长度(要返回的字符数或字节数)。

*********************************************************************************************/
--A. 在字符串上使用 SUBSTRING
USE pubs
SELECT au_lname,au_fname, SUBSTRING(au_fname, 1, 1)
FROM authors
ORDER BY au_lname

--B. 在 text、ntext 和 image 数据上使用 SUBSTRING
USE pubs
SELECT pub_id, SUBSTRING(logo, 1, 10) AS logo,
   SUBSTRING(pr_info, 1, 10) AS pr_info
FROM pub_info
WHERE pub_id = '1756'

/**//*******************************************************************************************
REVERSE
返回字符表达式的反转。

********************************************************************************************/
USE pubs
GO
SELECT au_fname,REVERSE(au_fname)
FROM authors
ORDER BY au_fname
GO

/**//*******************************************************************************************
LOWER
将大写字符数据转换为小写字符数据后返回字符表达式。

UPPER
返回将小写字符数据转换为大写的字符表达式。

LEFT
返回从字符串左边开始指定个数的字符。

RIGHT
返回字符串中从右边开始指定个数的 integer_expression 字符。

LTRIM
删除起始空格后返回字符表达式。

RTRIM
截断所有尾随空格后返回一个字符串。
********************************************************************************************/
SELECT title,LOWER(SUBSTRING(title, 1, 20)) AS Lower,
   UPPER(SUBSTRING(title, 1, 20)) AS Upper,
   LOWER(UPPER(SUBSTRING(title, 1, 20))) As LowerUpper
FROM titles
WHERE price between 11.00 and 20.00
GO

USE pubs
GO
SELECT au_lname,UPPER(RTRIM(au_lname)) + ', ' + ltrim(au_fname) AS Name
FROM authors
ORDER BY au_lname
GO

USE pubs
GO
SELECT au_fname,RIGHT(au_fname, 5)
FROM authors
ORDER BY au_fname
GO

DECLARE @string_to_trim varchar(60)
SET @string_to_trim = '     Five spaces are at the beginning of this
   string.'
SELECT 'Here is the string without the leading spaces: ' +
   LTRIM(@string_to_trim) as nospace,'Here is the string without the leading spaces: ' +
   @string_to_trim as isspace
GO

DECLARE @string_to_trim varchar(60)
SET @string_to_trim = 'Four spaces fgfg.    '
SELECT 'Here: ' + CHAR(13) +
   RTRIM(@string_to_trim)
GO

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hefeixue/archive/2007/04/19/1569994.aspx

Sql Server 字符串、日期函数相关推荐

  1. sql server字符串替换函数REPLACE

    使用REPLACE(替换字符串)函数REPLACE函数将字符串中的子字符串替换为指定字符串. 语法: REPLACE (string_expression1, string_expression2, ...

  2. SQL Server 常用日期函数的运用

    1.对SQL Server 日期函数的应用,本文主要的内容是如何获取下面的相关日期 本周星期一 本月第一天 本季度第一天 本年第一天 本周第一天 本月最后一天 本季度最后一天 本年最后一天 本周最后一 ...

  3. sql server 按照日期自动生成单据编号的函数

    一.sql server 按照日期自动生成单据编号的函数,格式为##08080001,##表示打头的单据字符,然后是年月和流水编号. 二.传入的参数为单据的打头字符和生成单据的日期 三.一般的调用格式 ...

  4. SQL server截取日期,只要年月

    SQL server截取日期,只要年月 select * from 表名 where CONVERT(varchar(7),[Time-列名],120) = CONVERT(varchar(7),'2 ...

  5. SQL Server 2005 MD5函数

    原文:SQL Server 2005 MD5函数 在SQL Server 2005下自带的函数HashBytes() ,此函数是微软在SQL Server 2005中提供的,可以用来计算一个字符串的M ...

  6. sql server中datename函数的使用

     DATENAME(param,date); 参数说明 1.param是指定要返回日期部分的参数 日期部分 缩写 year yy, yyyy quarter qq, q month mm, m d ...

  7. SQL Server中替换函数stuff、replace的使用

    原文链接:SQL Server中替换函数STUFF.replace的使用 STUFF ( character_expression , start , length ,character_expres ...

  8. SQL Server中COALESCE函数的用法

    在SQL Server中COALESCE函数,会返回其参数中第一个不为NULL的参数,效果如下: SELECT COALESCE(NULL,NULL,N'A',NULL,NULL) 结果: SELEC ...

  9. SQL SERVER的quotename函数

    数据库:sql server2008 函数:quotename(字符串,'可选参数:添加在外层的字符') 作用:quotename函数,给字符外层添加[ ]括号,quotename函数看分隔符默认是[ ...

  10. Oracle 和 Sql Server中日期的显示问题

    在日常的项目中,经常遇见User需要显示不同的日期格式.当然,在Oracle和Ms Sql server中,处理日期格式的函数就是两个:TO_Char(Oracle)和Convert(Sql Serv ...

最新文章

  1. C++学习笔记之函数指针
  2. 5.25. Spring boot with Git version
  3. Hadoop的伪分布式安装
  4. 分页控件 实战 Post篇
  5. 系统需求分析文档需要考虑的问题
  6. quarz 定时任务 cron表达式
  7. 谷歌编码_如何通过学习编码赢得Google之旅
  8. Matplotlib:plt.tight_layout()主标题(plt.suptitle)被覆盖
  9. jquery实现登录成功界面_【jQuery实例】Ajax登录页面
  10. 计算机等级考试照片用ps怎么调,Photoshop教程:用PS消除照片中的杂色条纹
  11. 专题论坛:云计算平台构建与实践论坛
  12. XenServer关键的配置文件
  13. 鸿蒙如何用JS开发智能手表App
  14. oracle用case计算分段函数,分段函数在微积分中地计算.PDF
  15. 年薪50万+的90后程序员都经历了什么?
  16. springboot vue uniapp校园报修系统源码
  17. 小程序使用OCR识别身份证
  18. android怎么实现文字制作,如何在Android中制作传统的蒙古文字TextView
  19. PTA 4 sdut-oop-5 计算长方体和四棱锥的表面积和体积(类的继承)分数 20
  20. 一天24小时的是如何消耗掉的

热门文章

  1. python一边接收数据,一边对数据进行实时处理导致数据丢失
  2. html怎么垂直对其,html – 垂直对齐方法
  3. GNSS精密单点定位(PPP)基本原理
  4. 整理任正非思想:胜利祝酒辞-1994
  5. 【python】.pyx文件编译为.pyd过程中遇到的问题
  6. 什么是跨境电商ERP系统
  7. 一、Android Matrix 矩阵
  8. Memcached和Redis数据缓存系统
  9. Matlab读Zygo干涉仪面形数据并进行37阶Zernike拟合(附Matlab代码)
  10. NLP入门--Word2Vec(CBOW)实战