當前位置:首頁 » 編程語言 » sql時間對比

sql時間對比

發布時間: 2022-06-29 13:05:37

1. sql中,怎麼對時間進行比較

這個估計是日歷時間,一般就是從January 1, 1970, UTC午夜開始到現在所經過的秒數
你可以用DATEADD函數在秒上加上這個數來把它轉化為它對應的datetime類型所表示的時間
比如:
select DATEADD(ss, 1257322946, '1970-1-1 00:00:00')

返回

-----------------------
2009-11-04 08:22:26.000

(1 row(s) affected)

2. sql語句中日期時間類型怎麼比較

正常比較日期前後就好了,假設表名叫Table,有個欄位叫CreateDate是日期類型的,如下:
select *
from Table
where CreatedDate>=CAST(DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)AS datetime)

3. SQL語句中怎樣比較兩個日期的大小

慣例,在等號左邊盡量不要有對欄位的運算,所以一般用法有:

1、判斷其是否在某個日期區間:
Where CheckDate Between '2013-01-01' And '2013-01-31'
這個方法也可用於加幾天是多少,或減幾天是多少:
把起迄日期參數化,原CheckDate要加的,那就變成@BeginDate加,減也同理~

2、判斷其是否大於某天:
Where CheckDate >'2013-01-01' 或大於等於:Where CheckDate >='2013-01-01'
小於某天
Where CheckDate <'2013-01-01' 或小於等於:Where CheckDate <='2013-01-01'

3、判斷其是否等於某天:
如果Check欄位不帶時間,只是年月日,那直接等於就可以了;
Where CheckDate ='2013-01-01'

如果CheckDate欄位是攜帶時間的就會有差別;這一點,在上述所有方法中都需要注意
eg:CheckDate 實際存儲值可能是: 20130101 08:50:54:000 或 20130101 22:50:54:000
這時直接用上面的等號是抓不到的,因此或改寫成:
Where CheckDate >= '2013-01-01' And CheckDate < '2013-01-02'
當然也可以把'2013-01-01',定義為參數@Date DateTime
Where CheckDate >= @Date And CheckDate < @Date+1

不建議在等號左邊使用函數或計算對表欄位進行計算。

以上是兩個日期的判斷,另外有些日期處理函數可以了解一下:

DATEDIFF ( datepart , startdate , enddate )
返回指定的 startdate 和 enddate 之間所跨的指定 datepart 邊界的計數(帶符號的整數)。
eg:
Select DateDiff(DAY,'20130101','20130105')
1號到5號相差4天,輸出結果為4

常用的datepart 有:
datepart 縮寫
year yy, yyyy 年
month mm, m 月
day dd, d 日
week wk, ww 周
hour hh 時
minute mi, n 分
second ss, s 秒

DATEADD(datepart, number, date)

將表示日期或時間間隔的數值與日期中指定的日期部分相加後,返回一個新的 DT_DBTIMESTAMP 值。number 參數的值必須為整數,而 date 參數的取值必須為有效日期。
eg:
Select DATEADD(DAY,1,'20130101')
1號加1天就是2號;輸出結果為 『2013-01-02』
Number可以是負數就變成減幾天

DATEADD(datepart, number, date)

將表示日期或時間間隔的數值與日期中指定的日期部分相加後,返回一個新的 DT_DBTIMESTAMP 值。number 參數的值必須為整數,而 date 參數的取值必須為有效日期。
eg:
Select DATEPART(DAY,'20130101')
返回datepart描述的部分,輸出結果為 1

4. 如何在SQL中比較兩個時間相等

首先這倆欄位是時間類的欄位,或者至少你得保證按時間格式存儲的文本
datediff(day,datetime1,datetime2) =0
精確到day是不是一樣的
datediff(hh,datetime1,datetime2) =0
精確到小時是不是一樣的
。。。

5. SQL 時間比較

有這么一個古老的傳說:

相傳,在遠古時期,豬頭設計者們定義日期類型的時候,一共制定了兩套:Date 和 Datetime 類型,

Date是日期的,如:2010-3-15
Datetime日期及時間的,如:2010-3-15 12:01:56:469

假設你要比較的兩個時間都是Datetime類型數據,它們不相等的可能性也許是99.99%,因為不僅日子要一樣,而且小時、分鍾、秒、微秒都要相等,那才算是一致。

假設交易日期這個數據是今天上午產生的,開始日期是今天下午生成的,那麼,肯定不相等了。

所以你要讓同一天(不管幾點鍾)的相關聯,那就用個函數吧,辦法太多了:

①:將Datetime轉換為Data再比較,where條件:

convert(date,a.交易記賬日期) >= convert(date,b.開始日期)

例如:convert(date, 2010-3-15 19:25:30) 就會返回date型的 2010-3-15 00:00:00,小時分鍾什麼的全是0了,所以同一天的就相等了

②:將它們按你要求的格式轉換為字元串後再比較,where條件:

convert(varchar,a.交易記賬日期,102) >= convert(varchar,b.開始日期,102)

例如:convert(varchar, 2010-3-15 19:25:30, 102) 就會返回字元型的2010.3.15,小時分鍾什麼的全甩掉了

=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*

請根據這個傳說對號入座,希望有所提醒,如果不是這個原因,咱們再研究~

6. 如何在SqlServer資料庫中用SQL語句中比較時間

datediff()這個挺好用的,select
datediff(time1,time2,month)
from
a,time1和time2兩個欄位必須是時間欄位

7. sql 語句中如何比較當前時間與指定時間是否相同

代碼的思路:

兩個時間的相差的秒數,當等於0時,說明兩日期相同。

getdate()表示獲取當前系統時間

sql 語句中比較當前時間與指定時間是否相同參考代碼如下:

select datediff(second,'2012-12-15 16:54:00',getdate())

(7)sql時間對比擴展閱讀:

GETDATE() 函數從 SQL Server 返回當前的時間和日期。

語法:GETDATE()

實例如下

使用下面的 SELECT 語句:

SELECT GETDATE() AS CurrentDateTime

結果:

CurrentDateTime

2008-12-29 16:25:46.635

注釋:上面的時間部分精確到毫秒。

8. SQL 資料庫時間比較

有錯誤,你給的$time = date("Y-m-d G:i:s");是日期的格式化字元串,比較的時候要用引號因起來,另外你這個sql的意思是查詢已經開始並且沒有過期的記錄條數,並沒有判斷哪條記錄已經開始或過期,應該這樣寫:
$time = date("Y-m-d G:i:s");
$sql="select ExamInfo_Begin,ExamInfo_End from kl_examinfo where id='$id'";
//$id是你要查詢的記錄的主鍵值;
$query=mysql_query($sql);
list($begin,$end)=mysql_fetch_row($query);
if($begin<'$time')
{
echo "已經開始";
}
else
{
echo "還未開始";
}

if($end>'$time')
{
echo "沒有過期";
}
else
{
echo "已經過期";
}

9. SQL里時間怎麼比較

1\如果是指90天
select *
from table
where datediff(day,time,getdate())<=90
或者
select *
from table
where time>=dateadd(day,-90,getdate())
2\如果是3月
select *
from table
where time>=dateadd(month,-3,getdate())
3\如果是當前月往前推兩個自然月的1號算起
select *
from table
where time>=Dateadd(mm,datediff(mm,0,getdate())-2,0)

10. sql資料庫時間如何比較

SELECT DATEDIFF(DAY, (SELECT table.dtime FROM table WHERE ID=1 )
,GETDATE())
//
(SELECT table.dtime FROM table WHERE ID=1 )

是你要從資料庫中提取的時間,重新自定義一下
GETDATE()是今天的日期
總的就是表示從資料庫里提取的時間到今天的差距
如果是想比較資料庫和資料庫里的時間,就按照上面的方法再寫一次

熱點內容
騰訊招聘php 發布:2024-04-25 15:17:02 瀏覽:444
雲伺服器多個公網ip搭建 發布:2024-04-25 15:13:15 瀏覽:845
phpmysqlupdate 發布:2024-04-25 15:08:15 瀏覽:253
隨時解壓 發布:2024-04-25 14:58:11 瀏覽:68
三率源碼 發布:2024-04-25 14:42:41 瀏覽:468
javastring轉string數組 發布:2024-04-25 14:42:10 瀏覽:137
飢荒如何更改密碼 發布:2024-04-25 14:42:02 瀏覽:744
百度雲如何解壓zip 發布:2024-04-25 14:38:57 瀏覽:571
母豬怎麼配置最好 發布:2024-04-25 14:35:47 瀏覽:76
php按鈕代碼 發布:2024-04-25 14:32:10 瀏覽:726