表值函数和标量值函数

Sql server 的表值函数是返回一个Table类型,table类型相当与一张存储在内存中的一张虚拟表。
实现表值函数很简单:
下面是一个不带输入参数的表值函数

create function tvpoints()
returns table
as
return
(
select * from tb_users
);
这个表值函数数查询所有用户表的数据

对于多语句表值函数,在 BEGIN...END 语句块中定义的函数体包含一系列 Transact-SQL 语句,这些语句可生成行并将其插入将返回的表中。

以下示例创建了一个表值函数.

create function tvpoints()
returns @points table (x float, y float)
as begin
insert @points values(1,2);
insert @points values(3,4);
return;
end

 

 

查询表值函数跟查询普通表一样
select * from tvpoints()
返回的是一张表

 

 

带输入参数的表值函数

create function tvpoints2(@x AS int,@y as int)
returns @points table (x float, y float)
as begin
insert @points values(@x,@y);
return;
end

 

 

 

 

SQL_标量值函数
2009-03-02 20:47


SQL NOW() 函数取得当日的数据

在NOW ( )函数返回当前系统日期和时间。



SQL 标量函数----->日期函数 day() 、month()、year()、DATEADD()、ATEDIFF()、DATENAME()、DATEPART() GETDATE()



执行实例(表:life_unite_product 有createtime时间字段)


select day(createtime) from life_unite_product     --取时间字段的天值

select month(createtime) from life_unite_product   --取时间字段的月值

select year(createtime) from life_unite_product    --取时间字段的年值



select datepart(yy,createtime) from life_unite_product     --取时间字段的年值

select datepart(qq,createtime) from life_unite_product     --取时间字段的季度值

select datepart(mm,createtime) from life_unite_product     --取时间字段的月值

select datepart(dy,createtime) from life_unite_product     --取时间字段是那年的第几天

select datepart(dd,createtime) from life_unite_product     --取时间字段的天值

select datepart(wk,createtime) from life_unite_product       --取时间字段是那年的第几个星期

select datepart(dw,createtime) from life_unite_product      
--取时间字段是那年的那个星期的第几个工作日(工作日从星期日开算)

select datepart(hh,createtime) from life_unite_product     --取时间字段的小时值

select datepart(mi,createtime) from life_unite_product     --取时间字段的分钟值

select datepart(ss,createtime) from life_unite_product     --取时间字段的秒值

select datepart(ms,createtime) from life_unite_product     --取时间字段的毫秒值



select dateadd(yy,-1,createtime) from life_unite_product   ----取时间字段(年份被减1了)

select dateadd(mm,3,createtime) from life_unite_product   ----取时间字段(月份被加3了)

select dateadd(dd,1,createtime) from life_unite_product   ----取时间字段(日被加1了)



select DATEDIFF(yy,createtime,getdate()) from life_unite_product --与当前日期的年份差

select DATEDIFF(mm,createtime,getdate()) from life_unite_product --与当前日期的月份差

select DATEDIFF(dd,createtime,getdate()) from life_unite_product --与当前日期的日数差

select DATEDIFF(mi,createtime,getdate()) from life_unite_product --与当前日期的分钟数差



select datename(yy,createtime) from life_unite_product   --取时间字段的年值

select datename(mm,createtime) from life_unite_product   --取时间字段的月值

select datename(dd,createtime) from life_unite_product   --取时间字段的天值



select getdate()   --取当前时间







日期函数

1、day(date_expression)

返回date_expression中的日期值



2、month(date_expression)

返回date_expression中的月份值



3、year(date_expression)

返回date_expression中的年份值



4、DATEADD()

DATEADD (, , )

返回指定日期date 加上指定的额外日期间隔number 产生的新日期。参数“datepart” 取值如下:



5、DATEDIFF()

DATEDIFF (, , )
返回两个指定日期在datepart 方面的不同之处,即date2 超过date1的差距值,其结果值是一个带有正负号的整数值。



6、DATENAME()

DATENAME (, )
以字符串的形式返回日期的指定部分此部分。由datepart 来指定。



7、DATEPART()

DATEPART ( datepart , date )

以整数值的形式返回日期的指定部分。此部分由datepart 来指定。

DATEPART (dd, date) 等同于DAY (date)

DATEPART (mm, date) 等同于MONTH (date)

DATEPART (yy, date) 等同于YEAR (date)



下表列出了 datepart 选项以及 SQL Server Compact Edition 所识别的缩写:

日期部分        缩写
年份            yy、yyyy

季度            qq、q

月份            mm、m

每年的某一日    dy、y

日期            dd、d

星期            wk、ww

工作日*         dw

小时            hh

分钟            mi、n

秒              ss、s

毫秒            ms





8、GETDATE()
以DATETIME 的缺省格式返回系统当前的日期和时间





日期函数用来操作DATETIME 和SMALLDATETIME 类型的数据,执行算术运算。与其它函数一样,可以在Select 语句的Select
和Where
子句以及表达式中使用日期函数。其使用方法如下:
日期函数参数,其中参数个数应不同的函数而不同。

·DAY()
DAY() 函数语法如下:
DAY (<date_expression>)
DAY() 函数返回date_expression 中的日期值。

·MONTH()
MONTH() 函数语法如下:
MONTH (<date_expression>)
MONTH() 函数返回date_expression 中的月份值。
与DAY() 函数不同的是,MONTH() 函数的参数为整数时,一律返回整数值1,即SQL Server 认为其是1900 年1 月。

·YEAR()
YEAR() 函数语法如下:
YEAR (<date_expression>)
YEAR() 函数返回date_expression 中的年份值。
提醒:在使用日期函数时,其日期值应在1753年到9999年之间,这是SQL Server系统所能识别的日期范围,否则会出现错误。

·DATEADD()
DATEADD() 函数语法如下:
DATEADD (<datepart>, <number>, <date>)
DATEADD() 函数返回指定日期date 加上指定的额外日期间隔number 产生的新日期。参数“datepart”
在日期函数中经常被使用,它用来指定构成日期类型数据的各组件,如年、季、月、日、星期等。其取值如表4-9 所示:

·DATEDIFF()
DATEDIFF() 函数语法如下:
DATEDIFF() (<datepart>, <date1>, <date2>)
DATEDIFF() 函数返回两个指定日期在datepart 方面的不同之处,即date2
超过date1的差距值,其结果值是一个带有正负号的整数值。针对不同的datepart,
DATEDIFF()函数所允许的最大差距值不一样,如:datepart 为second 时,DATEDIFF() 函数所允许的最大差距值为68:
年datepart 为millisecond 时,DATEDIFF()
函数所允许的最大差距值为24 天20 小时30 分23 秒647 毫秒。

·DATENAME()
DATENAME() 函数语法如下:
DATENAME (<datepart>, <date)>
DATENAME() 函数以字符串的形式返回日期的指定部分此部分。由datepart 来指定。

·DATEPART()
DATEPART() 函数语法如下:
DATEPART (<datepart>, <date>)
DATEPART() 函数以整数值的形式返回日期的指定部分。此部分由datepart 来指定。
DATEPART (dd, date) 等同于DAY (date)
DATEPART (mm, date) 等同于MONTH (date)
DATEPART (yy, date) 等同于YEAR (date)

·GETDATE()
GETDATE() 函数语法如下:
GETDATE()
GETDATE() 函数以DATETIME 的缺省格式返回系统当前的日期和时间,它常作为其它函数或命令的参数使用。

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

系统商研社

一切付出都是明智的

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值