常用语句

以复习为目的吧,整理了自己以前在学习T-SQL时的 常用语句 下载

获取当前日期时间

1 select getdate()
2 --结果:2012-07-12 06:20:58.670

获取星期几

----返回table
CREATE FUNCTION [dbo].[WeekDayName]
(
)
RETURNS @WeekDayName TABLE([Id] INT,[WeekDayName] NVARCHAR(15))
AS
BEGIN
    INSERT INTO @WeekDayName ([Id],[WeekDayName]) VALUES (0,‘Saturday‘),(1,‘Sunday‘),(2,‘Monday‘),(3,‘Tuesday‘),(4,‘Wednesday‘),(5,‘Thursday‘),(6,‘Friday‘)
    RETURN
END
----返回名称
CREATE FUNCTION [dbo].[WeekDayNameOfDate]
(
  @Date DATETIME
)
RETURNS NVARCHAR(10)
BEGIN
RETURN
    CASE (DATEPART(dw, @Date) + @@DATEFIRST) % 7
    WHEN 0 THEN ‘Saturday‘
    WHEN 1 THEN ‘Sunday‘
    WHEN 2 THEN ‘Monday‘
    WHEN 3 THEN ‘Tuesday‘
    WHEN 4 THEN ‘Wednesday‘
    WHEN 5 THEN ‘Thursday‘
    WHEN 6 THEN ‘Friday‘
  END
END

----调用表值函数 select * from dbo.WeekDayName()
----调用标量值函数select dbo.WeekDayNameOfDate(‘2012-01-03‘)
select getdate(),datename(weekday,getdate()),datepart(weekday,getdate())
--datename 返回星期名称;
--datepart 返回数值;
--例子:
select
case   datepart(dw,getdate())
when   1   then   ‘星期天 ‘
when   2   then   ‘星期一 ‘
when   3   then   ‘星期二 ‘
when   4   then   ‘星期三 ‘
when   5   then   ‘星期四 ‘
when   6   then   ‘星期五 ‘
when   7   then   ‘星期六 ‘
end

下面是一些常用的关于时间日期的方法

  1 select getdate()
  2 --结果2011-10-23 11:06:23.390
  3
  4 select datediff(yyyy,getdate(),‘2011-01-01‘)
  5 select datediff(yyyy,getdate(),‘2010-1-1‘)
  6 select datediff(yyyy,getdate(),‘2012-1-1‘)
  7
  8 --可用于判断数据库里面的数据是否属于同年
  9 --如果为同一年则返回0
 10 --前年日期返回负数
 11 --明后年日期返回大于零的正整数
 12 ------------------------------------
 13 --一个月第一天的
 14 Select DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
 15
 16 --本周的星期一
 17 Select DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
 18
 19 --一年的第一天
 20 Select DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
 21
 22 --季度的第一天
 23 Select DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
 24
 25 --当天的半夜
 26 Select DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)
 27
 28 --上个月的最后一天
 29 Select dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
 30
 31 --去年的最后一天
 32 Select dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))
 33
 34 --本月的最后一天
 35 Select dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))
 36
 37 --本年的最后一天
 38 Select dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))
 39
 40 --本月的第一个星期一
 41 select DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())), 0)
 42 -------------------------------------------
 43 --建立一个表,其中的记录包含有当前的日期和时间,可以添加一个DATETIME型字段,指定其缺省值为函数GETDATE()的返回值,就象这样:
 44
 45 Create TABLE #site_log (username VARCHAR(40),useractivity VARCHAR(100),entrydate DATETIME DEFAULT GETDATE())
 46 drop table #site_log
 47
 48 --转换日期和时间
 49 --函数GETDATE()的返回值在显示时只显示到秒。实际上,SQL Sever内部时间可以精确到毫秒级(确切地说,可以精确到3.33毫秒)
 50 Select CONVERT(VARCHAR(30),GETDATE(),9)
 51 在函数CONVERT()中你可以使用许多种不同风格的日期和时间格式
 52 日期和时间的类型:
 53 类型值   标准        输出
 54 0         Default    mon dd yyyy hh:miAM
 55 1         USA        mm/dd/yy
 56 2         ANSI    yy.mm.dd
 57 3         British/French dd/mm/yy
 58 4         German    dd.mm.yy
 59 5         Italian    dd-mm-yy
 60 6         -        dd mon yy
 61 7         -        mon dd,yy
 62 8         -        hh:mi:ss
 63 9         Default    + milliseconds--mon dd yyyy    hh:mi:ss:mmmAM(or )
 64 10        USA        mm-dd-yy
 65 11        JAPAN    yy/mm/dd
 66 12        ISO        yymmdd
 67 13        Europe    Default + milliseconds--dd mon yyyy hh:mi:ss:mmm(24h)
 68 14        -        hh:mi:ss:mmm(24h)
 69
 70 select convert(varchar(30),getdate(),106)
 71 select convert(varchar(30),getdate(),6)
 72 /**类型0,9,和13总是返回四位的年。
 73     对其它类型,要显示世纪,把style值加上100。
 74     类型13和14返回24小时时钟的时间。
 75     类型0,7,和13返回的月份用三位字符表示(用Nov代表November)
 76     对表中所列的每一种格式,你可以把类型值加上100来显示有世纪的年(例如,00年将显示为2000年)*/
 77
 78 --抽取日期和时间
 79 --在许多情况下,也许只想得到日期和时间的一部分,而不是完整的日期和时间。为了抽取日期的特定部分,你可以使用函数DATEPARt()
 80
 81 select datepart(dd,getdate())
 82 select datepart(mm,getdate())
 83 select datepart(yyyy,getdate())
 84 select datepart(yy,getdate())
 85 --函数DATEPART()的参数是两个变量。第一个变量指定要抽取日期的哪一部分;第二个变量是实际的数据。在这个例子中,函数DATEPART()抽取月份,因为mm代表月份。下面是这个Select 语句的输出结果:
 86 --函数DATEPART()的返回值是一个整数
 87
 88 --日期的各部分及其简写
 89 日期部分    简写    值
 90 year        yy        1753--9999
 91 quarter     qq        1--4
 92 month        mm        1--12
 93 day of year dy        1--366
 94 day            dd        1--31
 95 week        wk        1--53
 96 weekday     dw        1--7(Sunday--Saturday)
 97 hour        hh        0--23
 98 minute        mi        0--59
 99 second        ss        0--59
100 milisecond    ms        0--999
101
102 --当你需要进行日期和时间的比较时,使用函数DATEPART()返回整数是有用的。要以更易读的格式得到部分的日期和时间,你可以使用函数DATENAME(),如下例所示:
103
104 Select site_name ‘Site Name’
105 DATENAME(mm,site_entrydate) ‘Month Posted’
106 FROM site_directory
107
108 select datename(mm,getdate())
109
110 --函数DATENAME()和函数DATEPART()接收同样的参数
111 --它的返回值是一个字符串,而不是一个整数
112
113 --可以用函数DATENAME()来抽取一个星期中的某一天。下面的这个例子同时抽取一周中的某一天和日期中的月份:
114
115 select datename(dw,getdate())+‘-‘+datename(mm,getdate()) as ‘Day and Month Posted‘
116
117 --返回日期和时间范围
118 --当分析表中的数据时,也许希望取出某个特定时间的数据
119 --也许对特定的某一天中,比如说2000年12月25日――访问者在你站点上的活动感兴趣,要取出这种类型的数据,你也许会试图使用这样的Select语句
120 Select * FROM weblog Where entrydate="12/25/20000"
121 --不要这样做。这个Select语句不会返回正确的记录
122 --它将只返回日期和时间是12/25/2000 12:00:00:000AM的记录,换句话说,只有刚好在午夜零点输入的记录才被返回。
123
124 --问题是SQL Sever将用完整的日期和时间代替部分日期和时间。
125 --例如,当你输入一个日期,但不输入时间时,SQL Sever将加上缺省的时间"00:00:00:000AM"
126 --当你输入一个时间,但不输入日期时,SQL Sever将加上缺省的日期"Jan 1 1900"。
127 --要返回正确的记录,你需要适用日期和时间范围。有不止一种途径可以做到这一点。例如,下面的这个Select 语句将能返回正确的记录:
128
129 create table #dt(da datetime,id int)--验证sql缺省日期时间
130 insert into #dt values(‘2011-10-10‘,1)
131 insert into #dt values(‘09:10:10‘,2)
132 select * from #dt
133 drop table #dt
134
135 Select * FROM weblog
136 Where entrydate>=”12/25/2000” AND entrydate<”12/26/2000”
137 --这个语句可以完成任务,因为它选取的是表中的日期和时间大于等于12/25/2000 00:00:00:000AM并小于12/26/2000 00:00:00:000AM的记录。换句话说,它将正确地返回2000年圣诞节这一天输入的每一条记录。
138 --另一种方法是,你可以使用LIKE来返回正确的记录。通过在日期表达式中包含通配符"%",你可以匹配一个特定日期的所有时间。这里有一个例子:
139
140 Select * FROM weblog Where entrydate LIKE ‘Dec 25 2000%’
141
142 --这个语句可以匹配正确的记录。因为通配符“%”代表了任何时间。
143 --使用这两种匹配日期和时间范围的函数,你可以选择某个月,某一天,某一年,某个小时,某一分钟,某一秒,甚至某一毫秒内输入的记录。但是,如果你使用 LIKE 来匹配秒或毫秒,你首先需要使用函数CONVERT()把日期和时间转换为更精确的格式
144
145 --比较日期和时间
146 --最后,还有两个日期和时间函数对根据日期和时间取出记录是有用的。使用函数DATEADD()和DATEDIFF(),你可以比较日期的早晚。例如,下面的Select语句将显示表中的每一条记录已经输入了多少个小时:
147
148 select datediff(mm,getdate(),‘2011-10-10‘)
149
150 --函数DADEDIFF()的参数是三个变量。第个变量指定日期的某一部分。在这个例子中,是按小时对日期进行比较,在日期2000年11月1日和2000年11月30日的指定时间之间有689个小时。另外两个参数是要进行比较的时间。为了返回一个正数,较早的时间应该先给。
151 --函数DATEADD()把两个日期相加。当你需要计算截止日期这一类的数据时,这个函数是有用处的
152
153
154 select dateadd(mm,-1,getdate());
155
156 --函数DATEADD()的参数有三个变量。第一个变量代表日期的某一部分,这个例子用到了代表月份的mm。
157 --第二个变量指定了时间的间隔――在本例中是一个月。
158 --最后一个变量是一个日期
159 --注意:
160 --使用函数DATEADD()把一个日期加上一个月,它并不加上30天。这个函数只简单地把月份值加1。
161
162
163 ---------------------------------------
164 Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
165 Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06
166 Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16
167 Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06
168 Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06
169 Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06
170 Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06
171 Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06
172 Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46
173 Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM
174 Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06
175 Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16
176 Select CONVERT(varchar(100), GETDATE(), 12): 060516
177 Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937
178 Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
179 Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47
180 Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157
181 Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM
182 Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
183 Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47
184 Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250
185 Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM
186 Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006
187 Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16
188 Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006
189 Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006
190 Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006
191 Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006
192 Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006
193 Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49
194 Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM
195 Select CONVERT(varchar(100), GETDATE(), 110): 05-16-2006
196 Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16
197 Select CONVERT(varchar(100), GETDATE(), 112): 20060516
198 Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513
199 Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547
200 Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49
201 Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700
202 Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827:
203 Select CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM

各系统表的作用

 1 MSSQL中各个系统表的作用
 2
 3 sysaltfiles    主数据库               保存数据库的文件
 4 syscharsets    主数据库               字符集与排序顺序
 5 sysconfigures  主数据库               配置选项
 6 syscurconfigs  主数据库               当前配置选项
 7 sysdatabases   主数据库               服务器中的数据库
 8 syslanguages   主数据库               语言
 9 syslogins      主数据库               登陆帐号信息
10 sysoledbusers  主数据库               链接服务器登陆信息
11 sysprocesses   主数据库               进程
12 sysremotelogins主数据库               远程登录帐号
13 syscolumns     每个数据库             列
14 sysconstrains  每个数据库             限制
15 sysfilegroups  每个数据库             文件组
16 sysfiles       每个数据库             文件
17 sysforeignkeys 每个数据库             外部关键字
18 sysindexs      每个数据库             索引
19 sysmenbers     每个数据库             角色成员
20 sysobjects     每个数据库             所有数据库对象
21 syspermissions 每个数据库             权限
22 systypes       每个数据库             用户定义数据类型
23 sysusers       每个数据库             用户
24
25
26 --用什么方法可以得到一个表中所有的列名。SQl语句。
27 select   列名=name   from   syscolumns   where   id=object_id(N‘要查的表名‘)
28
29 use gpStrudy
30 select   name="name"   from   syscolumns   where   id=object_id(N‘bookTable‘)

goto在T-SQL中的用法

 1 /**
 2 GOTO语句可以实现无条件跳转
 3 语法格式 GOTO  lable 其中lable为要跳转到的语句标号
 4 遇到GOTO语句时直接跳转到lable标签处继续执行,而goto之后的语句不再执行
 5 **/
 6
 7 declare @result int=0
 8 declare @sn int =0
 9 loop_1:--定义标号
10 set @[email protected][email protected]
11 set @[email protected]+1
12 if(@sn<=100)
13 goto loop_1--如果小于100就跳转到loop_1标号处
14 print @result
时间: 2024-11-03 03:16:20

常用语句的相关文章

sql server常用函数、常用语句

一.常用函数 1.字符串函数 : charindex(':','abc:123')    --寻找一个字符在一段字符串中起始的位置 len('zhangsan')   --获取一段字符串的长度 left('Ly,君子之耀',2) --从一段字符串左边返回指定长度的字符 right(char_expr,int_expr)  --返回字符串右边int_expr个字符 substring(expression,start,length) --截取字符串 datalength(Char_expr)  -

SQL 常用语句

–-表现最差的前10名使用查询 SELECT TOP 10 ProcedureName = t.text, ExecutionCount = s.execution_count, AvgExecutionTime = isnull ( s.total_elapsed_time / s.execution_count, 0 ), AvgWorkerTime = s.total_worker_time / s.execution_count, TotalWorkerTime = s.total_wo

SQL常用语句积累

SQL 常用语句积累: 一. SQL 基本语句 SQL 分类: DDL -数据定义语言 (Create , Alter , Drop , DECLARE) DML -数据操纵语言 (Select , Delete , Update , Insert) DCL -数据控制语言 (GRANT , REVOKE , COMMIT , ROLLBACK) 首先 , 简要介绍基础语句: 1 .说明:创建数据库 Create DATABASE database-name 2 .说明:删除数据库 drop d

mysql数据库常用语句2

关于mysql常用语句的整理,上一篇涉及到ddl.dml以及一些简单的查询语句. 1:mysql分页查询 select * from table_name limit 5,10;   从下标为5元素查询,查询10条记录,注意:mysql下标从0开始 2:关联查询 select a.id,a.name,b.id,b.name from table_name a ,table_name b where a.id=b.id;   表a和表b以字段id关联查询 3:比较下面语句 select * fro

Oracle 常用语句整理

Oracle 常用语句整理 最近做了份大型数据库作业.遇到了一些问题,在网上找的很是辛苦,于是,将一些常用的语句记录下来,方便大家学习.都是一些基本的东西.如果忘了,可以来看看. 1.创建临时表空间 create temporary tablespace car_data //car_data,表空间名 tempfile 'C:\Users\Administrator\Desktop\car_data.dbf'//表空间路径 size 50m autoextend on next 50m max

【Oracle】常用语句集合

1 oracle常用经典SQL查询 2 常用SQL查询: 3 4 1.查看表空间的名称及大小 5 6 select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size 7 from dba_tablespaces t, dba_data_files d 8 where t.tablespace_name = d.tablespace_name 9 group by t.tablespace_name; 10 11 2.查看表空间物

SSH查看服务器日志常用语句

SSH客户端查看服务器日志常用语句即为linux进行文件夹进行文件查看的常用语句: 1.cd 2.tail 3.grep [options] pattern file -c:只输出匹配行的计数.-I:不区分大 小写(只适用于单字符).-h:查询多文件时不显示文件名.-l:查询多文件时只输出包含匹配字符的文件名.-n:显示匹配行及 行号.-s:不显示不存在或无匹配文本的错误信息.-v:显示不包含匹配文本的所有行. 面对庞大的日志文件,单独下载并打开文件,从中提取信息的话,很吃力.这时,grep语句

SQL Server性能常用语句

查看各表的数据行数 SELECT o.name, i. ROWS FROM sysobjects o, sysindexes i WHERE o.id = i.id AND o.Xtype = 'U' AND i.indid < 2 ORDER BY o.name; 计算数据库中各个表每行记录所占用空间 --SELECT * FROM Employees AS e; CREATE TABLE #tablespaceinfo ( nameinfo VARCHAR(50) , rowsinfo BI

SQL常用语句集合(不断更新)

1.多条件 查询 上下级 所有数据 select * from OrgUnit where (ParentId = '3' or OrgId='3' or ParentId in (select OrgId from OrgUnit where ParentId='3')) 2.相同列数的 多个查询结果 组合(union all) select a,b,c from table1 union all select ca,cb,cc from table2 3.左外连接 与 右外连接 (left

oracle 常用语句

1.decode 函数(小版本的case when) select  decode(pd.discount_id,null,'','购买'||pd.product_count||'个,'||pd.product_discount_rate||'折优惠') as discount from b2b_product d right join b2b_product_hot ph on d.product_id = ph.product_id  left join b2b_dictionary aon