SQL 基礎及時間函式
阿新 • • 發佈:2018-11-17
sql知識點
一.7種常見型別
int 整數型別 -2^31到2^31-1
decimal 小數型別 -10^38+1到10^38-1
char 儲存固定長度非unicode字元,最多可存8000個位元組
varchar 儲存可變長度非unicode字元,最多可存8000個位元組
nvarchar 儲存可變長度非unicode字元,最多可存4000個位元組
date 0001-01-01到9999-12-31
datetime 1753-01-01 00:00:00到9999-12-31 00:00:00
二.約束
主鍵約束 primary key
外來鍵約束 references 外來鍵表(外來鍵id)
自增約束 identity(起始值,自增值)
check約束 check(列值>條件 (and 列值>條件))
三.函式
1)時間介紹
year | 年 | 753-9999 | 縮寫: yy |
quarter | 季度 | 1-4 | |
month | 月 | 1-12 | mm |
day | 天 | 1-31 | dy |
weekday - | 一週中的某一天 | 1-7 | ----- |
week | 周 | 0-51 | wk |
hour | 時 | 0-23 | hh |
minute | 分鐘 | 0-59 | mi |
second | 秒 | 0-59 | ss |
millisecond | 0-999 | 毫秒 | ms |
2)時間函式
--1.時間格式轉換(yyyy-mm-dd hh-mm-ss.ms/yyyy-mm-dd hh-mm-ss/yyyy-mm-dd/hh-mm-ss.ms
select GETDATE()
select convert(varchar(50),GETDATE(),20)
select CONVERT(varchar(10),GETDATE(),120)
select CONVERT(varchar(10),GETDATE(),114)
--2.計算兩個時間之間的天數差(select DATEDIFF(d,gtime,otime) d:自定義引數(天數) gtime:起始時間 otime:結束時間)
select DATEDIFF(d,'1997-10-05',GETDATE())
--3.將3個引數轉換為yyyy-mm-dd這樣的格式(DATEFROMPARTS(year int,month int,day int) year,month,day為引數;後面int為引數型別)
select DATEFROMPARTS(1997,10,05)
--4.在原有時間上新增1年/2季度/3月/4天/5小時/6分鐘/7秒
select DATEADD(YEAR,1,GETDATE())
select DATEADD(QUARTER,2,GETDATE())
select DATEADD(MONTH,3,GETDATE())
select DATEADD(DAY,4,GETDATE())
select DATEADD(HOUR,5,GETDATE())
select DATEADD(MINUTE,6,GETDATE())
select DATEADD(SECOND,7,GETDATE())
--5.返回年/季度/月/天/時/分/秒的整數部分
select DATEPART(YEAR,GETDATE())
select DATEPART(QUARTER,GETDATE())
select DATEPART(MONTH,GETDATE())
select DATEPART(DAY,GETDATE())
select DATEPART(HOUR,GETDATE())
select DATEPART(MINUTE,GETDATE())
select DATEPART(SECOND,GETDATE())
--6.返回對應的星期幾/返回一年中的第幾周(返回的是國外的第幾周(國外以星期天為一週第一天))
select DATENAME(WEEKDAY,GETDATE())
select DATENAME(WEEK,GETDATE())
--7.計算本週的週一/計算一年的第一天
select DATEADD(wk,DATEDIFF(wk,0,getdate()),0)
select DATEADD(yy,DATEDIFF(yy,0,getdate()),0)