SQL知识收集

HAVING 語法:

SELECT column1, SUM(column2) FROM "list-of-tables"
GROUP BY "column-list"
HAVING "condition";

HAVING 子句是GROUP BY 的一部份,用來過濾在 GROUP BY 所選出的資料。功能如同select 命令中 where 條件式一樣,只是 HAVING 必需配合 GROUP BY 使用。

Set statistics io on|off 是否显示逻辑或物理读写的次数

Set statistics time on|off 是否显示每一个命令进行语法分析和编译的时间

NOT EXISTS用法
NOT EXISTS 的作用与 EXISTS 正相反。如果子查询没有返回行,则满足 NOT EXISTS 中的 WHERE 子句。本
示例查找不出版商业书籍的出版商的名称:

USE pubs
GO
SELECT pub_name
FROM publishers
WHERE NOT EXISTS
   (SELECT *
   FROM titles
   WHERE pub_id = publishers.pub_id
   AND type = ’business’)
ORDER BY pub_name
GO

下面是结果集:

pub_name                                
----------------------------------------
Binnet & Hardley                        
Five Lakes Publishing                   
GGG&G                                   
Lucerne Publishing                      
Ramona Publishers                       
Scootney Books                          

(6 row(s) affected)

=========================================================

Convert轉換日期:

select convert(char(10),getdate(),111)

101 美国 mm/dd/yyyy 
2 102 ANSI yyyy.mm.dd  
3 103 英国/法国 dd/mm/yy 
4 104 德国 dd.mm.yy 
5 105 意大利 dd-mm-yy 
6 106 - dd mon yy 
7 107 - mon dd, yy 
8 108 - hh:mm:ss 
9 或 109 (*)  默认值 + 毫秒 mon dd yyyy hh:mi:ss:mmmAM(或 PM) 
10 110 美国 mm-dd-yy 
11 111 日本 yy/mm/dd 
12 112 ISO yyyymmdd   convert(char(8),getdate(),112)
13 或 113 (*)  欧洲默认值 + 毫秒 dd mon yyyy hh:mm:ss:mmm(24h) 
14 114 - hh:mi:ss:mmm(24h) 
20 或 120 (*)  ODBC 规范 yyyy-mm-dd hh:mm:ss[.fff] 
21 或 121 (*)  ODBC 规范(带毫秒) yyyy-mm-dd hh:mm:ss[.fff] 
126(***) ISO8601 yyyy-mm-dd Thh:mm:ss:mmm(不含空格) 
130* 科威特 dd mon yyyy hh:mi:ss:mmmAM 
131* 科威特 dd/mm/yy hh:mi:ss:mmmAM

------------------------------------

sql server日期时间函数

Sql Server中的日期与时间函数
1.  当前系统日期、时间
    select getdate()  

2. dateadd  在向指定日期加上一段时间的基础上,返回新的 datetime 值
   例如:向日期加上2天
   select dateadd(day,2,'2004-10-15')  --返回:2004-10-17 00:00:00.000

3. datediff 返回跨两个指定日期的日期和时间边界数。
   select datediff(day,'2004-09-01','2004-09-18')   --返回:17

4. datepart 返回代表指定日期的指定日期部分的整数。
  SELECT DATEPART(month, '2004-10-15')  --返回 10

5. datename 返回代表指定日期的指定日期部分的字符串
   SELECT datename(weekday, '2004-10-15')  --返回:星期五

6. day(), month(),year() --可以与datepart对照一下

select 当前日期=convert(varchar(10),getdate(),120)
,当前时间=convert(varchar(8),getdate(),114)

select datename(dw,'2004-10-15')

select 本年第多少周=datename(week,'2004-10-15')
      ,今天是周几=datename(weekday,'2004-10-15')

函数参数/功能
GetDate( ) 返回系统目前的日期与时间
DateDiff (interval,date1,date2)以interval 指定的方式,返回date2 与date1两个日期之间的差值 date2-date1
DateAdd (interval,number,date)以interval指定的方式,加上number之后的日期
DatePart (interval,date)返回日期date中,interval指定部分所对应的整数值
DateName (interval,date)返回日期date中,interval指定部分所对应的字符串名称

参数 interval的设定值如下:

缩 写(Sql Server)(Access 和 ASP)说明
YearYyyyyy年 1753 ~ 9999
QuarterQqq  季 1 ~ 4
MonthMmm  月1 ~ 12
Day of yearDyy 一年的日数,一年中的第几日 1-366
DayDdd  日,1-31
WeekdayDww一周的日数,一周中的第几日 1-7
WeekWkww 周,一年中的第几周 0 ~ 51
HourHhh  时0 ~ 23
MinuteMin 分钟0 ~ 59
SecondSss秒 0 ~ 59
MillisecondMs-毫秒 0 ~ 999

access 和 asp 中用date()和now()取得系统日期时间;其中DateDiff,DateAdd,DatePart也同是能用于Access和asp中,这些函数的用法也类似

举例:
1.GetDate() 用于sql server :select GetDate()

2.DateDiff('s','2005-07-20','2005-7-25 22:56:32')返回值为 514592 秒
DateDiff('d','2005-07-20','2005-7-25 22:56:32')返回值为 5 天

3.DatePart('w','2005-7-25 22:56:32')返回值为 2 即星期一(周日为1,周六为7)
DatePart('d','2005-7-25 22:56:32')返回值为 25即25号
DatePart('y','2005-7-25 22:56:32')返回值为 206即这一年中第206天
DatePart('yyyy','2005-7-25 22:56:32')返回值为 2005即2005年

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值