日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

sql获得当前时间 与 SQL 比较时间大小

發布時間:2023/12/10 数据库 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sql获得当前时间 与 SQL 比较时间大小 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. MySQL

1) MySQL中提供了NOW()函數,用于取得當前的日期時間,NOW()汗水、SYSDATE()、CURRENT_TIMESTAMP()等別名如下:

SELECT NOW(), SYSDATE(), CURRENT_TIMESTAMP

?

2) 如果想得到不包括時間部分的當前日期,則可以使用CURDATE()函數,CURDATE()函數還有CURRENT_DATE等別名。如下:

SELECT CURDATE(), CURRENT_DATE

?

3) 如果想得到不包括日期部分的當前時間,則可以使用CURTIME()函數,CURTIME()函數還有CURRENT_TIME等別名

SELECT CURTIME(), CURRENT_TIME

?

?

2.Oracle

在Oracle中沒有提供取得當前日期時間的函數,不過我們可以到系統表DUAL中查詢SYSTIMESTAMP的值來得到當前的時間戳。如下:

SELECT SYSTIMESTAMP FROM DUAL

?

同樣,我們可以到系統表DUAL中查詢SYSDATE的值來得到當前日期時間。如下:

SELECT SYSDATE FROM DUAL

?

同樣,在Oracle中也沒有專門提供取得當前日期、當前時間的函數,不過我們可以將SYSDATE的值進行處理,這里需要借助于TO_CHAR()函數,這個函數會在后面的章節中詳細介紹,這里只介紹它在日期處理方面的應用。

使用TO_CHAR(時間日期值, 'YYYY-MM-DD')可以得到日期時間值的日期部分,因此下面的SQL語句可以得到當前的日期值:

SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD') FROM DUAL

?

使用TO_CHAR(時間日期值,'HH24:MI:SS')可以得到日期時間值的時間部分,因此下面的SQL語句可以得到當前的時間值:

SELECT TO_CHAR(SYSDATE, 'HH24:MI:SS') FROM DUAL


?比較字符串類型的時間大小

數據庫中的時間是varchar類型的,MySql使用CURDATE()來獲取當前日期,SqlServer通過GETDATE()來獲取當前日期

?

1. 直接使用字符串來比較

注意:要保證兩個數據的類型完全相同,否則異常

比如A:"2016-09-01",如果B數據是:"2016-9-2",那么無法進行比較

2. 通過類型轉換函數convert(),

注意:要保證字符串的時間值正確,否則異常,

比如“2016-2-30”,2月沒有30號,所以在轉換的時候就會異常

CONVERT (<data_ type>[ length ], <expression> [, style])

1)data_type為SQL Server系統定義的數據類型,用戶自定義的數據類型不能在此使用。
2)length用于指定數據的長度,缺省值為30。
3)用CONVERT() 函數的style 選項能以不同的格式顯示日期和時間。style 是將DATATIME 和SMALLDATETIME 數據轉換為字符串時

所選用的由SQL Server 系統提供的轉換樣式編號,不同的樣式編號有不同的輸出格式。如果用這種方法來判斷某一個字段的話,

則存入的日期字段的字符串格式只要是能讓sql server完成對日期的轉換就可以了,而不一定要像第一種方法中的那樣嚴格。

還是說adddate字段,比如要比較它是否大于當前的日期,就可以這樣寫:where (CONVERT(varchar, adddate) >= CONVERT(varchar, GETDATE())) 。

  • select?convert(varchar(10),getdate(),120)??--獲取當前日期??
  • SELECT?CONVERT(DATE,GETDATE(),110)?--獲取當前日期??
  • SELECT?CONVERT(DATETIME,GETDATE(),110)?--獲取當前時間日期??
  • SELECT?CONVERT(VARCHAR(50),GETDATE(),108)??--獲取當前時刻?
  • 我的應用場景:
    select * from jy_card where (SELECT CURDATE())< end_date and end_date is? not? null


    總結

    以上是生活随笔為你收集整理的sql获得当前时间 与 SQL 比较时间大小的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。