Sql Service 常用函式

2022-02-25 02:21:32 字數 1629 閱讀 9851

declare   @dt   datetime

set   @dt=getdate()

declare   @number   int

set   @number=3

--1.指定日期該年的第一天或最後一天

--a.   年的第一天

select   convert(char(5),@dt,120)+ '1-1 '

--b.   年的最後一天

select   convert(char(5),@dt,120)+ '12-31 '

--2.指定日期所在季度的第一天或最後一天

--a.   季度的第一天

select   convert(datetime,

convert(char(8),

dateadd(month,

datepart(quarter,@dt)*3-month(@dt)-2,

@dt),

120)+ '1 ')

--b.   季度的最後一天(case判斷法)

select   convert(datetime,

convert(char(8),

dateadd(month,

datepart(quarter,@dt)*3-month(@dt),

@dt),

120)

+case   when   datepart(quarter,@dt)   in(1,4)

then   '31 'else   '30 '   end)

--c.   季度的最後一天(直接推算法)

select   dateadd(day,-1,

convert(char(8),

dateadd(month,

1+datepart(quarter,@dt)*3-month(@dt),

@dt),

120)+ '1 ')

--3.指定日期所在月份的第一天或最後一天

--a.   月的第一天

select   convert(datetime,convert(char(8),@dt,120)+ '1 ')

--b.   月的最後一天

select   dateadd(day,-1,convert(char(8),dateadd(month,1,@dt),120)+ '1 ')

--c.   月的最後一天(容易使用的錯誤方法)

select   dateadd(month,1,dateadd(day,-day(@dt),@dt))

--4.指定日期所在周的任意一天

select   dateadd(day,@number-datepart(weekday,@dt),@dt)

--5.指定日期所在周的任意星期幾

--a.     星期天做為一周的第1天

select   dateadd(day,@number-(datepart(weekday,@dt)+@@datefirst-1)%7,@dt)

--b.     星期一做為一周的第1天

select   dateadd(day,@number-(datepart(weekday,@dt)+@@datefirst-2)%7-1,@dt)

sql service新增索引

語法 create 索引型別 index 索引名稱 on 表名 列名 with fillfactor 填充因子值0 100 go 例項 use 庫名 goif exists select from sysindexes where name ix test tname 檢測是否已經存在ix test...

SQL Service與Oracle資料庫基礎

1.基本配置與使用 資料庫術語 資料庫例項 資料庫在記憶體的資料 與檔案中的資料庫相對應 資料庫網域名稱 分布式資料庫,通過資料庫鏈路實現遠端複製,資料庫網域名稱存在於引數檔案中 全域性資料庫 資料庫名 資料庫網域名稱 資料庫服務名 分布式資料庫中的全域性資料庫,本地資料庫的資料庫名 工具配置 db...

sql service 儲存過程,游標的使用

1 建表 drop table dbo.users gocreate table dbo.users id int not null name varchar 32 null go alter table dbo.users add primary key id go2 新增資料 刪除儲存過程 if...