SQL 獲取當前日期,年、月、日、周、時、分、秒

来源:http://www.cnblogs.com/lxc89/archive/2016/10/15/5962978.html
-Advertisement-
Play Games

結果: 2016-03-23 11:04:14.450 2016 03 23 星期三 13 11 4 14 1.顯示本月第一天SELECT DATEADD(mm,DATEDIFF(mm,0,getdate()),0) select convert(datetime,convert(varchar(8 ...


select GETDATE() as '當前日期',
    DateName(year,GetDate()) as '',
    DateName(month,GetDate()) as '',
    DateName(day,GetDate()) as '',
    DateName(dw,GetDate()) as '星期',
    DateName(week,GetDate()) as '周數',
    DateName(hour,GetDate()) as '',
    DateName(minute,GetDate()) as '',
    DateName(second,GetDate()) as ''

結果:

2016-03-23 11:04:14.450  2016 03 23 星期三 13 11 14       

 

1.顯示本月第一天
SELECT DATEADD(mm,DATEDIFF(mm,0,getdate()),0) 
select convert(datetime,convert(varchar(8),getdate(),120)+'01',120)

2.顯示本月最後一天
select dateadd(day,-1,convert(datetime,convert(varchar(8),dateadd(month,1,getdate()),120)+'01',120))
SELECT dateadd(ms,-3,DATEADD(mm,DATEDIFF(m,0,getdate())+1,0)) 

3.上個月的最後一天 
SELECT dateadd(ms,-3,DATEADD(mm,DATEDIFF(mm,0,getdate()),0)) 

4.本月的第一個星期一
select DATEADD(wk,DATEDIFF(wk,0, dateadd(dd,6-datepart(day,getdate()),getdate())),0)

5.本年的第一天 
SELECT DATEADD(yy,DATEDIFF(yy,0,getdate()),0) 

6.本年的最後一天 
SELECT dateadd(ms,-3,DATEADD(yy,DATEDIFF(yy,0,getdate())+1,0))

7.去年的最後一天 
SELECT dateadd(ms,-3,DATEADD(yy,DATEDIFF(yy,0,getdate()),0))

8.本季度的第一天 
SELECT DATEADD(qq,DATEDIFF(qq,0,getdate()),0)  

9.本周的星期一 
SELECT DATEADD(wk,DATEDIFF(wk,0,getdate()),0) 

10.查詢本月的記錄 
select * from tableName where DATEPART(mm, theDate) = DATEPART(mm, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE()) 

11.查詢本周的記錄 
select * from tableName where DATEPART(wk, theDate) = DATEPART(wk, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE()) 

12.查詢本季的記錄 
select * from tableName where DATEPART(qq, theDate) = DATEPART(qq, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE()) 
其中:GETDATE()是獲得系統時間的函數。

13.獲取當月總天數:
select DATEDIFF(dd,getdate(),DATEADD(mm, 1, getdate()))

select datediff(day,
dateadd(mm, datediff(mm,'',getdate()), ''),
dateadd(mm, datediff(mm,'',getdate()), '1900-02-01'))

14.獲取當前為星期幾
DATENAME(weekday, getdate())

15. 當前系統日期、時間 
select getdate() 

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

17. datediff 返回跨兩個指定日期的日期和時間邊界數。
select datediff(day,'2004-09-01','2004-09-18') --返回:17

18. datepart 返回代表指定日期的指定日期部分的整數。
SELECT DATEPART(month, '2004-10-15') --返回 10
年為year,月為month,日為day,小時hour,分為minute,秒為second

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

17. 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) 說明
Year Yy 年 1753 ~ 9999
Quarter Qq 季 1 ~ 4
Month Mm 月1 ~ 12
Day of year Dy 一年的日數,一年中的第幾日 1-366
Day Dd 日,1-31
Weekday Dw 一周的日數,一周中的第幾日 1-7
Week Wk 周,一年中的第幾周 0 ~ 51
Hour Hh 時0 ~ 23
Minute Mi 分鐘0 ~ 59
Second Ss 秒 0 ~ 59
Millisecond Ms 毫秒 0 ~ 999

舉例:
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年

應用示例:

查詢某個日期之間的記錄數據:
select * from 表 where 開始時間>'2005-02-01' and 結束時間<='2005-06-05'order by id desc


查詢最近30內的記錄數據:
select * from 表 where datediff(Dd,last_date,getdate())<=30 order by id desc

查詢最近一周內的點擊率大於100的記錄數據:
select * from t_business_product where hit_count>100 and datediff(Dw,last_date,getdate())<=7 order by id desc

查詢某一年(如2006年)的記錄數據:
select * from 表 where DatePart(Yy,last_date)=2006 order by id desc

select * from 表 where DatePart(Year,last_date)=2006 order by id desc

如查詢系統當前年份插入的一年內的數據:
select * from 表 where DatePart(Yy,getdate())=DatePart(Yy,getdate()) order by id desc

取系統日期 並將 日期 分開 
select 當前日期=convert(varchar(10),dateadd(day,-1,getdate()),120),當前時間=convert(varchar(8),getdate(),114)

取 年月日
year(),month(),date()


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 上篇文章中介紹了 單變數線性回歸 ,為什麼說時單變數呢,因為它只有單個特征,其實在很多場景中只有單各特征時遠遠不夠的,當存在多個特征時,我們再使用之前的方法來求特征繫數時是非常麻煩的,需要一個特征繫數一個偏導式,而卻最要命的時特性的增長時及其迅猛的,幾十、幾百、幾千…… 單變數線性回歸: 多變數線性 ...
  • http://stackoverflow.com/questions/745538/create-function-through-mysqldb How can I define a multi-statement function or procedure in using the MySQLd ...
  • SQL2008還原備份的SQL2008的.bak文件時會報錯,大部分原因是因為當前登錄的版本是2005的,因而無法還原用SQL2008備份的數據,結局的辦法是去掉登錄的伺服器名稱後面的尾碼SQLEXPRESS,則登錄SQL2008,但直接登錄也可能會出現如下問題:provide命名管道提供程式,er ...
  • SELECT SUBSTRING(CONVERT(varchar(100),時間欄位, 22),0,15) AS aa FROM 表名 ...
  • C# .Net :Excel NPOI導入導出操作教程之將Excel文件讀取並寫到資料庫表,示例分享 ...
  • Storm基本概念 Storm是一個開源的實時計算系統,它提供了一系列的基本元素用於進行計算:Topology、Stream、Spout、Bolt等等。 在Storm中,一個實時應用的計算任務被打包作為Topology發佈,這同Hadoop的MapReduce任務相似。但是有一點不同的是:在Hado ...
  • Storm集群部署以及使用Storm中產生的問題以及相應的解決方案 ...
  • 數字字典表 --查看當前用戶下麵有哪些張表 select * from user_tables; select table_name from user_tables; --查看當前用戶下麵有哪些視圖 select * from user_views; select view_name from u... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...