sql時間日期
A. sql請教大家一個日期的加減法
ql語句處理時間——日期加減天數如下:
select date_add(now(), interval 1 day); -- 加1天
select date_add(now(), interval 1 hour); -- 加1小時
select date_add(now(), interval 1 minute); -- 加1分鍾
select date_add(now(), interval 1 second); -- 加1秒
select date_add(now(), interval 1 microsecond);-- 加1毫秒
select date_add(now(), interval 1 week);-- 加1周
select date_add(now(), interval 1 month);-- 加1月
select date_add(now(), interval 1 quarter);-- 加1季
select date_add(now(), interval 1 year);-- 加1年
(1)sql時間日期擴展閱讀
SQL中常用日期函數
1、GETDATE() 返回當前系統日期;
SELECT GETDATE()
2、DATEADD(日期部分,常數,日期) 返回將日期的指定日期部分加常數後的結果返回;
--常數為正
SELECT DATEADD(YY,1,GETDATE())
--等同於
SELECT DATEADD(YEAR,1,GETDATE())
--常數為負數
SELECT DATEADD(YY,-2,GETDATE())
--常數為小數(直接捨去小數部分)
SELECT DATEADD(YY,2.4,GETDATE())
SELECT DATEADD(YY,2.5,GETDATE())
SELECT DATEADD(YY,2.6,GETDATE())
B. SQL Server——如何指定日期格式
1、打開sql server的管理工具,點擊新建查詢,如下圖所示。
C. 關於SQL模糊查詢日期時間的方法
1、Convert轉成String,在用Like查詢。
select*fromtable1 whereconvert(varchar,yourtime,120) like '2017-06-30%'
2、Between
select*fromtable1whereyourtime between '2017-06-30 0:00:00' and '2017-06-30 24:59:59'";
3、datediff()函數
select*fromtable1 wheredatediff(day,yourtime,'2017-06-30')=0
(3)sql時間日期擴展閱讀
表達式DateDiff(timeinterval,date1,date2 [, firstdayofweek [, firstweekofyear]])
允許數據類型: timeinterval 表示相隔時間的類型,代碼為:
年份 yy、yyyy 季度 qq、q
月份 mm、m
每年的某一日 dy、y
日期 dd、d
星期 wk、ww
工作日 dw
小時 hh
分鍾 mi、n
秒 ss、s
毫秒 ms
D. sql語句怎麼獲取系統時間
sql語句怎麼獲取系統時間
sql讀取系統日期和時間的方法如下:
--獲取當前日期(如:yyyymmdd)
select CONVERT (nvarchar(12),GETDATE(),112)
--獲取當前日期(如:yyyymmdd hh:MM:ss)
select GETDATE()
--獲取當前日期(如:yyyy-mm-dd)
Select Datename(year,GetDate())+'-'+Datename(month,GetDate())+'-'+Datename(day,GetDate())
--獲取當前日期(如:yyyy/mm/dd)
select DATENAME(YEAR,GETDATE())+'/'+DATENAME(MONTH,GETDATE())+'/'+DATENAME(DAY,GETDATE())
--獲取幾種日期
select DATENAME(YEAR,GETDATE()) --年份(YYYY)
select DATENAME(YY,GETDATE())
select DATENAME(MM,GETDATE()) --月份
select DATENAME(DD,GETDATE()) --日期
select dateName(hh,getdate()) --獲取小時
select DATENAME(MI,GETDATE()) --獲取分鍾
select DATENAME(SECOND,GETDATE()) --獲取秒
select DATENAME(WEEK,GETDATE()) --獲取當前星期(周)是這一年中的第幾個星期(周)
select DATENAME(WEEKDAY,GETDATE()) --星期幾
E. 請教高手列舉出sql語句中所有有關日期 、時間的用法 謝謝
SQL語句中時間函數的應用Date 函數
描述:返回當前系統日期。
語法Date
DateAdd 函數
描述:返回已添加指定時間間隔的日期。
語法DateAdd(interval, number, date)
interval: 必選。字元串表達式,表示要添加的時間間隔。有關數值,請參閱「設置」部分。
number: 必選。數值表達式,表示要添加的時間間隔的個數。數值表達式可以是正數(得到未來的日期)或負數(得到過去的日期)。
date: 必選。Variant 或要添加 interval 的表示日期的文字。
interval 參數可以有以下值:
yyyy (年) 、q (季度) 、m (月) 、y (一年的日數) 、d (日) 、w (一周的日數) 、ww (周) 、h (小時) 、n (分鍾) 、s (秒)
說明:可用 DateAdd 函數從日期中添加或減去指定時間間隔。例如可以使用 DateAdd 從當天算起 30 天以後的日期或從現在算起 45分鍾以後的時間。要向 date 添加以「日」為單位的時間間隔,可以使用「一年的日數」(「y」)、「日」(「d」)或「一周的日數」(「w」)。
DateAdd 函數不會返回無效日期。如下示例將 95 年 1 月 31 日加上一個月:
NewDate = DateAdd("m", 1, "31-Jan-95")
在這個例子中,DateAdd 返回 95 年 2 月 28 日,而不是 95 年 2 月 31 日。如果 date 為 96 年 1 月 31 日,則返回 96 年 2 月 29 日,這是因為 1996 是閏年。
如果計算的日期是在公元 100 年之前則會產生錯誤。
如果 number 不是 Long 型值,則在計算前四捨五入為最接近的整數。
DateDiff 函數
描述:返回兩個日期之間的時間間隔。
語法DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear> )
interval: 必選。字元串表達式,表示用於計算 date1 和 date2 之間的時間間隔。有關數值,請參閱「設置」部分。
date1, date2: 必選。日期表達式。用於計算的兩個日期。
firstdayofweek: 可選。指定星期中第一天的常數。如果沒有指定,則默認為星期日。有關數值,請參閱「設置」部分。
firstweekofyear: 可選。指定一年中第一周的常數。如果沒有指定,則默認為 1 月 1 日所在的星期。有關數值,請參閱「設置」部分。
interval 參數可以有以下值:
yyyy (年) 、q (季度) 、m (月) 、y (一年的日數) 、d (日) 、w (一周的日數) 、ww (周) 、h (小時) 、n (分鍾) 、s (秒)
firstdayofweek 參數可以有以下值:
(以下分別為:常數 值 描述)
vbUseSystem 0 使用區域語言支持 (NLS) API 設置。
vbSunday 1 星期日(默認)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六
firstweekofyear 參數可以有以下值:
(以下分別為:常數 值 描述)
vbUseSystem 0 使用區域語言支持 (NLS) API 設置。
vbFirstJan1 1 由 1 月 1 日所在的星期開始(默認)。
vbFirstFourDays 2 由在新年中至少有四天的第一周開始。
vbFirstFullWeek 3 由在新的一年中第一個完整的周開始。
說明DateDiff 函數用於判斷在兩個日期之間存在的指定時間間隔的數目。例如可以使用 DateDiff 計算兩個日期相差的天數,或者當天到當年最後一天之間的星期數。
要計算 date1 和 date2 相差的天數,可以使用「一年的日數」(「y」)或「日」(「d」)。當 interval為「一周的日數」(「w」)時,DateDiff 返回兩個日期之間的星期數。如果 date1 是星期一,則 DateDiff 計算到 date2之前星期一的數目。此結果包含 date2 而不包含 date1。如果 interval 是「周」(「ww」),則 DateDiff函數返回日歷表中兩個日期之間的星期數。函數計算 date1 和 date2 之間星期日的數目。如果 date2 是星期日,DateDiff將計算 date2,但即使 date1 是星期日,也不會計算 date1。
如果 date1 晚於 date2,則 DateDiff 函數返回負數。
firstdayofweek 參數會對使用「w」和「ww」間隔符號的計算產生影響。
如果 date1 或 date2 是日期文字,則指定的年度會成為日期的固定部分。但是如果 date1 或 date2 被包括在引號 (" ")中並且省略年份,則在代碼中每次計算 date1 或 date2 表達式時,將插入當前年份。這樣就可以編寫適用於不同年份的程序代碼。
在 interval 為「年」(「yyyy」)時,比較 12 月 31 日和來年的 1 月 1 日,雖然實際上只相差一天,DateDiff 返回 1 表示相差一個年份。
DatePart 函數
描述:返回給定日期的指定部分。
語法DatePart(interval, date[, firstdayofweek[, firstweekofyear> )
DatePart: 函數的語法有以下參數:
interval: 必選。字元串表達式,表示要返回的時間間隔。有關數值,請參閱「設置」部分。
date: 必選。要計算的日期表達式。
firstdayof week: 可選。指定星期中的第一天的常數。如果沒有指定,則默認為星期日。有關數值,請參閱「設置」部分。
firstweekofyear: 可選。指定一年中第一周的常數。如果沒有指定,則默認為 1 月 1 日所在的星期。有關數值,請參閱「設置」部分。
interval 參數可以有以下值:
yyyy (年) 、q (季度) 、m (月) 、y (一年的日數) 、d (日) 、w (一周的日數) 、ww (周) 、h (小時) 、n (分鍾) 、s (秒)
firstdayofweek 參數可以有以下值:
(以下分別為:常數 值 描述)
vbUseSystem 0 使用區域語言支持 (NLS) API 設置。
vbSunday 1 星期日(默認)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六
firstweekofyear 參數可以有以下值:
(以下分別為:常數 值 描述)
vbUseSystem 0 使用區域語言支持 (NLS) API 設置。
vbFirstJan1 1 由 1 月 1 日所在的星期開始(默認)。
vbFirstFourDays 2 由在新年中至少有四天的第一周開始。
vbFirstFullWeek 3 由在新的一年中第一個完整的周(不跨年度)開始。
說明DatePart 函數用於計算日期並返回指定的時間間隔。例如使用 DatePart 計算某一天是星期幾或當前的時間。
firstdayofweek 參數會影響使用「w」和「ww」間隔符號的計算。
如果 date 是日期文字,則指定的年度會成為日期的固定部分。但是如果 date 被包含在引號 (" ") 中,並且省略年份,則在代碼中每次計算 date 表達式時,將插入當前年份。這樣就可以編寫適用於不同年份的程序代碼。
DateSerial 函數
描述:對於指定的年、月、日,返回 Date 子類型的 Variant。
語法DateSerial(year, month, day)
year: 從 100 到 9999 之間的數字或數值表達式。
month: 任意數值表達式。
day: 任意數值表達式。
說明:要指定日期,如 1991 年 12 月 31 日,DateSerial 函數中每個參數的取值范圍都應該是可接受的;即日的取值應在 1 和31 之間,月的取值應在 1 和 12 之間。但是,也可以使用表示某日之前或之後的年、月、日數目的數值表達式為每個參數指定相對日期。
以下樣例中使用了數值表達式代替絕對日期。在這里,DateSerial 函數返回 1990 年 8 月 1 日之前十年 (1990 - 10) 零兩個月 (8 - 2) 又一天 (1 - 1) 的日期:即 1980 年 5 月 31 日。
DateSerial(1990 - 10, 8 - 2, 1 - 1)
對於 year 參數,若取值范圍是從 0 到 99,則被解釋為 1900 到 1999 年。對於此范圍之外的 year 參數,則使用四位數字表示年份(例如 1800 年)。
當任何一個參數的取值超出可接受的范圍時,則會適當地進位到下一個較大的時間單位。例如,如果指定了 35天,則這個天數被解釋成一個月加上多出來的日數,多出來的日數取決於其年份和月份。但是如果參數值超出 -32,768 到 32,767的范圍,或者由三個參數指定(無論是直接還是通過表達式指定)的日期超出了可以接受的日期范圍,就會發生錯誤。
Datevalue 函數
描述:返回 Date 子類型的 Variant。
語法datevalue(date)
date 參數應是字元串表達式,表示從 100 年 1 月 1 日到 9999 年 12 月 31 日中的一個日期。但是,date 也可以是表示上述范圍內的日期、時間或日期時間混合的任意表達式。
說明:如果 date 參數包含時間信息,則 Datevalue 不會返回時間信息。但是如果 date 包含無效的時間信息(如 "89:98"),就會出現錯誤。
如果 date 是某一字元串,其中僅包含由有效的日期分隔符分隔開的數字,則 Datevalue將會根據為系統指定的短日期格式識別月、日和年的順序。Datevalue還會識別包含月份名稱(無論是全名還是縮寫)的明確日期。例如,除了能夠識別 12/30/1991 和 12/30/91 之外,Datevalue還能識別 December 30, 1991 和 Dec 30, 1991。
如果省略了 date 的年份部分,Datevalue 將使用計算機系統日期中的當前年份。
Day 函數
描述:返回 1 到 31 之間的一個整數(包括 1 和31),代表某月中的一天。
語法Day(date)
date 參數是任意可以代表日期的表達式。如果 date 參數中包含 Null,則返回 Null。
FormatDateTime 函數
描述:返回表達式,此表達式已被格式化為日期或時間。
語法:FormatDateTime(Date[,NamedFormat])
Date: 必選。要被格式化的日期表達式。
NamedFormat: 可選。指示所使用的日期/時間格式的數值,如果省略,則使用 vbGeneralDate。
NamedFormat 參數可以有以下值:
(以下分別為:常數 值 描述)
vbGeneralDate 0 顯示日期和/或時間。如果有日期部分,則將該部分顯示為短日期格式。如果有時間部分,則將該部分顯示為長時間格式。如果都存在,則顯示所有部分。
vbLongDate 1 使用計算機區域設置中指定的長日期格式顯示日期。
vbShortDate 2 使用計算機區域設置中指定的短日期格式顯示日期。
vbLongTime 3 使用計算機區域設置中指定的時間格式顯示時間。
vbShortTime 4 使用 24 小時格式 (hh:mm) 顯示時間。
Hour 函數
描述:返回 0 到 23 之間的一個整數(包括 0 和 23),代表一天中的某一小時。
語法:Hour(time)
time 參數是任意可以代表時間的表達式。如果 time 參數中包含 Null,則返回 Null。
Minute 函數
描述:返回 0 到 59 之間的一個整數(包括 0 和59),代表一小時內的某一分鍾。
語法:Minute(time)
time 參數是任意可以代表時間的表達式。如果 time 參數包含 Null,則返回 Null。
Month 函數
描述:返回 1 到 12 之間的一個整數(包括 1 和 12),代表一年中的某月。
語法:Month(date)
date 參數是任意可以代表日期的表達式。如果 date 參數中包含 Null,則返回 Null。
MonthName 函數
描述:返回表明指定月份的字元串。
語法:MonthName(month[, abbreviate])
month: 必選。月份的數值定義。例如,一月是 1,二月是 2,以此類推。
abbreviate: 可選。Boolean 值,表明月份名稱是否簡寫。如果省略,默認值為 False,即不簡寫月份名稱。
Now 函數
描述:根據計算機系統設定的日期和時間返回當前的日期和時間值。
語法:Now
Second 函數
描述:返回 0 到 59 之間的一個整數(包括 1 和 59),代表一分鍾內的某一秒。
語法:Second(time)
time 參數是任意可以代表時間的表達式。如果 time 參數中包含 Null,則返回 Null。
Time 函數
描述:返回 Date 子類型 Variant,指示當前系統時間。
語法:Time
TimeSerial 函數
描述:返回一個 Date 子類型的 Variant,含有指定時、分、秒的時間。
語法:TimeSerial(hour, minute, second)
hour: 其值為從 0 (12:00 A.M.) 到 23 (11:00 P.M.) 的數值或數值表達式。
minute: 任意數值表達式。
second: 任意數值表達式。
說明:要指定一時刻,如 11:59:59,TimeSerial 的參數取值應在可接受的范圍內;也就是說,小時應介於 0-23 之間,分和秒應介於0-59之間。但是,可以使用數值表達式為每個參數指定相對時間,這一表達式代表某時刻之前或之後的時、分或秒數。以下樣例中使用了表達式代替絕對時間數。TimeSerial 函數返回中午之前六小時 (12 - 6) 十五分鍾的時間 (-15),即 5:45:00 A.M.。
TimeSerial(12 - 6, -15, 0)
當任何一個參數的取值超出可接受的范圍時,它會正確地進位到下一個較大的時間單位中。例如,如果指定了 75分鍾,則這個時間被解釋成一小時十五分鍾。但是,如果任何一個參數值超出 -32768 到 32767的范圍,就會導致錯誤。如果使用三個參數直接指定的時間或通過表達式計算出的時間超出可接受的日期范圍,也會導致錯誤。
Timevalue 函數
描述:返回包含時間的 Date 子類型的 Variant。
語法:Timevalue(time)
time參數通常是代表從 0:00:00 (12:00:00 A.M.) 到 23:59:59 (11:59:59 P.M.) 的字元串表達式(包括0:00:00 和 23:59:59)。不過,time 也可以是代表該范圍內任何時間的表達式。如果 time 參數包含 Null,則返回Null。
說明:可以採用 12 或 24 小時時鍾格式輸入時間。例如 "2:24PM" 和 "14:24" 都是有效的 time 參數。
如果 time 參數包含日期信息, Timevalue 函數並不返回日期信息。然而,如果 time 參數包含無效的日期信息,則會出現錯誤。
Weekday 函數
描述:返回代表一星期中某天的整數。
語法:Weekday(date, [firstdayofweek])
date: 可以代表日期的任意表達式。如果 date 參數中包含 Null,則返回 Null。
firstdayofweek: 指定星期中第一天的常數。如果省略,默認使用 vbSunday。
firstdayofweek 參數有如下設置:
(以下分別為:常數 值 描述)
vbUseSystem 0 使用區域語言支持 (NLS) API 設置。
vbSunday 1 星期日
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六
Weekday 函數返回如下值:
(以下分別為:常數 值 描述)
vbSunday 1 星期日
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六
WeekdayName 函數
描述:返回一個字元串,表示星期中指定的某一天。
語法:WeekDayName(weekday, abbreviate, firstdayofweek)
weekday: 必選。星期中某天的數值定義。各天的數值定義取決於 firstdayofweek 參數設置。
abbreviate: 可選。Boolean 值,指明是否縮寫表示星期各天的名稱。如果省略, 默認值為 False,即不縮寫星期各天的名稱。
firstdayofweek: 可選。指明星期第一天的數值。關於數值,請參閱「設置」部分。
firstdayofweek 參數有以下值:
(以下分別為:常數 值 描述)
vbUseSystem 0 使用區域語言支持 (NLS) API 設置。
vbSunday 1 星期日(默認)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六
Year 函數
描述:返回一個代表某年的整數。
語法:Year(date)
date 參數是任意可以代表日期的參數。如果 date 參數中包含 Null,則返回 Null
F. 在sql中怎樣截取時間
在sql中怎樣截取時間?
把日期截取為月份有以下幾種辦法:
1、日期為日期格式,這種最簡單,使用Month()函數即可獲取月份,如:
1
select month(getdate()) from al
2、日期為yyyy-mm-dd格式的文本,這種情況下需要轉換成日期格式再截取,如:
1
select TO_CHAR(to_date('2013-01-01', 'yyyy-MM-dd'), 'yyyyMM') dateStr from al
3、日期格式為其他格式,如yyyymmdd或yyyy/mm/dd的,此類格式類似第二種格式可以用類似的語句進行查詢,只是轉換成日期的時候的格式不一樣。
註:以上SQL均基於ORACLE資料庫
G. SQL資料庫中的是年月日時分秒格式的,什麼語句能實現年月日的查詢
1、SEELCT *from表名where日期='年月日'
2、查詢:
declare @date varchar(20)
set @date = '2013-06-06 13:30:25' +'%'
SELECT *FROMTELEPHONE_HISTORYWHERECONVERT(VARCHAR(20) ,RECVTIME, 120)
LIKE @date
其中:CONVERT(VARCHAR(20) ,RECVTIME, 120) 就是將日期 類型轉 「YYYY-MM-DD HH:MM:SS」 格式的字元類型。
(7)sql時間日期擴展閱讀:
SQL (Structured Query Language) 是具有數據操縱和數據定義等多種功能的資料庫語言,這種語言具有交互性特點,能為用戶提供極大的便利,資料庫管理系統應充分利用SQL語言提高計算機應用系統的工作質量與效率。
條件查詢
條件查詢即帶有WHERE子句的查詢,所要查詢的對象必須滿足WHERE子句給出的條件。
例:找出任何一門課成績在70以上的學生情況、課號及分數
SELECT UNIQUE student.st_class,student.st_no,student.st_name,student.st_sex,student.st_age,score.su_no,score.score
FROM student,score
WHERE score.score>=70 AND score.stno=student,st_no
這里使用UNIQUE是不從查詢結果集中去掉重復行,如果使用DISTINCT則會去掉重復行。另外邏輯運算符的優先順序為NOT→AND→OR。
例:找出課程號為c02的,考試成績不及格的學生
SELECT st_no
FROM score
WHERE su_no=『c02』 AND score<60