『壹』 sql 中 timestamp 類型的時間 作為條件 如何進行查詢
timestamp:佔用 4 位元組,內部實現是新紀元時間(1970-01-01 00:00:00)以來的秒,那麼這種格式在展示給用戶的時候就需要做必要的時區轉換才能得到正確數據。
在進行新紀元時間(1970-01-01 00:00:00)以來的秒到實際時間之間轉換的時候 MySQL 根據參數 time_zone 的設置有兩種選擇:
time_zone設置為 SYSTEM 的話:使用 sys_time_zone 獲取的 OS 會話時區,同時使用 OS API 進行轉換。對應轉換函數 Time_zone_system::gmt_sec_to_TIME
time_zone設置為實際的時區的話:比如 『+08:00』,那麼使用使用 MySQL 自己的方法進行轉換。對應轉換函數 Time_zone_offset::gmt_sec_to_TIME
實際上 Time_zone_system 和 Time_zone_offset 均繼承於 Time_zone 類,並且實現了 Time_zone 類的虛函數進行了重寫,因此上層調用都是 Time_zone::gmt_sec_to_TIME。
注意這種轉換操作是每行符合條件的數據都需要轉換的。
『貳』 sql中如何判斷時間大小呢 急!
時間要有單引號的,不然實際執行的是算術運算
select * From Book where EditionDate>(2001-1-1) 等同於
select * From Book where EditionDate>1999
1999可以隱式轉換為日期,所以有結果。
正確寫法是
select * From Book where EditionDate>'2001-1-1' and EditionDate<'2008-12-31'
『叄』 sqlserver中 TimeStamp怎麼比較大小。
你可以把
'2016-10-06'
轉換成時間戳,再進行比較
datediff(ss,
'1970-01-01',
'2016-10-06')
獲取時間戳
,ss
表示以秒為單位
1475712000
『肆』 不同資料庫 的時間戳 能比較嗎
當然可以,時間戳都是從1970年1月1日算起
『伍』 sql語句中日期時間類型怎麼比較
正常比較日期前後就好了,假設表名叫Table,有個欄位叫CreateDate是日期類型的,如下:
select *
from Table
where CreatedDate>=CAST(DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)AS datetime)
『陸』 sqlserver資料庫中timestamp如何和時間比較大小,比如求出timestamp > '2016-10-06'的記錄
你可以把 '2016-10-06' 轉換成時間戳,再進行比較
datediff(ss, '1970-01-01', '2016-10-06') 獲取時間戳 ,ss 表示以秒為單位 1475712000
『柒』 SQL語句 怎樣比較兩個日期的大小,簡單一點的
我剛剛寫了一段代碼你參考一下 希望對你有幫助
import java.text.SimpleDateFormat;
import java.util.Date;
public class Date_Test {
public static void main(String[] args) {
Date d1 = new Date(); //第一個時間
Date d2 = new Date(); //第二個時間
SimpleDateFormat f = new SimpleDateFormat("hhmmss"); //格式化為 hhmmss
int d1Number = Integer.parseInt(f.format(d1).toString()); //將第一個時間格式化後轉為int
int d2Number = Integer.parseInt(f.format(d2).toString()); //將第二個時間格式化後轉為int
if(d1Number>d2Number){
System.out.println("時間d1大");
System.out.println(d1Number);
}
else{
System.out.println("時間d2大");
System.out.println(d2Number);
}
}
}
『捌』 SQL server中timestamp的比較
select * from table where timestamp between time1 and time2
『玖』 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
『拾』 Java中如何比較時間(小時/分/秒)的大小
有兩個包里有日期的類型,不知道樓主想用哪個?java.util.Date和java.sql.Timestamp兩都可以,後面是面對資料庫的,before(),after(),equals()就可以比較兩個時間之間的關系了!
××××××××××××××××××××××××××××××××××××××××××××
SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Date nows=new java.util.Date();
java.util.Date date=dateFormat.parse("2005-09-12 12:36:29");
long hous=(nows.getTime()-date.getTime())/(60*60*1000);
轉換成long在比較 可以得到日期相差的時間
×××××××××××××××××××××××××××××××××××××××××××××
date1, date2;
long l1=date1.getTime();
long l2=date2.getTime();
if(l1>l2)
{
//說明date1比較新
}
else if(l1 == l2)
{
//說明date1和date2一樣
}
else
{
//說明date2比較新
}
×××××××××××××××××××××××××××××××××××××××××
SimpleDateFormat dateFormat=new SimpleDateFormat(sPatten);
String sText = dateFormat.format(dateValue);
得到sText後你愛怎麼比就怎麼比呀
sPatten =「yyyy」 取年
sPatten =「MM」 取月
sPatten =「dd」 取日
sPatten =「HH」 取小時
sPatten =「mm」 取分
sPatten =「ss」 取秒
××××××××××××××××××××××××××××××××××××××××××
Date date1 = .....
Date date2 = .....
Calendar cal = Calendar.getInstance();
cal.setTime(date1);
int n1 = Calendar.get(Calendar.DATE);
cal.setTime(date2);
int n2= Calendar.get(Calendar.DATE);
if (n1 == n2) {
}
......