資料庫date查詢
㈠ 資料庫里的Date類型數據查詢不出來的問題。
data欄位在返回的對象里定義為date
數據里的date欄位 as 對象里定義的date欄位 對應好
㈡ sql資料庫里datetime類型怎麼查詢
用CONVERT()
函數阿。
函數語法:CONVERT(data_type(length),data_to_be_converted,style)
假設你輸入的key值是yymmdd這樣的格式,那麼你可以這樣寫:
select
*
from
news
where
convert(VARCHAR(100),infotime,112)
like
'%"&
key
&"%'
order
by
id
desc
如果輸入的key是其它格式,那麼style要改,網上有對應表,你可以去查
㈢ 資料庫的日期區間查詢方法。
access中有個mid函數,可以用來截取字元串或者日期。
select * from 表名 where mid([TestTime],5,10) ='04/19/2013'其中,5代表截取的開始位置,從左數,10代表截取的長度。
資料庫的日期區間查詢有兩種情況:
1:查詢給定時間在開始時間列與結束時間列范圍中數據;
2:查詢日期列在開始時間列與結束時間列范圍中數據。
第一種:<,>, <= , >=
select * from 表名 where 日期列 >= to_date('2015-10-20 00:00:00','yyyy-mm-dd hh24:mi:ss')
and t.日期列 <= to_date('2015-10-20 23:59:59','yyyy-mm-dd hh24:mi:ss')。
第二種 between and
select * from 表名 where 日期列 between to_date('2015-10-20 00:00:00','yyyy-mm-dd
hh24:mi:ss')and to_date('2015-10-20 23:59:59','yyyy-mm-dd hh24:mi:ss')。
(3)資料庫date查詢擴展閱讀:
SQL資料庫語句:
創建資料庫:
CREATE DATABASE database-name。
刪除資料庫:
drop database dbname。
創建新表:
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)。
刪除新表:
drop table tabname。
增加一個列:
Alter table tabname add column col type。
添加主鍵:
Alter table tabname add primary key(col)。
刪除主鍵:
Alter table tabname drop primary key(col)。
創建索引:
create [unique] index idxname on tabname(col….)。
刪除索引:
drop index idxname。
創建視圖:
create view viewname as select statement。
刪除視圖:
drop view viewname。
參考資料來源:網路-sql語句大全
㈣ oracle資料庫時間日期查詢
TO_DATE格式(以時間:2007-11-02 13:45:25為例)
Year:
yy two digits 兩位年 顯示值:07
yyy three digits 三位年 顯示值:007
yyyy four digits 四位年 顯示值:2007
Month:
mm number 兩位月 顯示值:11
mon abbreviated 字元集表示 顯示值:11月,若是英文版,顯示nov
month spelled out 字元集表示 顯示值:11月,若是英文版,顯示november
Day:
dd number 當月第幾天 顯示值:02
ddd number 當年第幾天 顯示值:02
dy abbreviated 當周第幾天簡寫 顯示值:星期五,若是英文版,顯示fri
day spelled out 當周第幾天全寫 顯示值:星期五,若是英文版,顯示friday
ddspth spelled out, ordinal twelfth
Hour:
hh two digits 12小時進制 顯示值:01
hh24 two digits 24小時進制 顯示值:13
Minute:
mi two digits 60進制 顯示值:45
Second:
ss two digits 60進制 顯示值:25
其它
Q digit 季度 顯示值:4
WW digit 當年第幾周 顯示值:44
W digit 當月第幾周 顯示值:1
24小時格式下時間范圍為: 0:00:00 - 23:59:59....
12小時格式下時間范圍為: 1:00:00 - 12:59:59 ....
1. 日期和字元轉換函數用法(to_date,to_char)
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from al; //日期轉化為字元串
select to_char(sysdate,'yyyy') as nowYear from al; //獲取時間的年
select to_char(sysdate,'mm') as nowMonth from al; //獲取時間的月
select to_char(sysdate,'dd') as nowDay from al; //獲取時間的日
select to_char(sysdate,'hh24') as nowHour from al; //獲取時間的時
select to_char(sysdate,'mi') as nowMinute from al; //獲取時間的分
select to_char(sysdate,'ss') as nowSecond from al; //獲取時間的秒
select to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss') from al//
2.
select to_char( to_date(222,'J'),'Jsp') from al
顯示Two Hundred Twenty-Two
3.求某天是星期幾
select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day') from al;
星期一
select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from al;
monday
設置日期語言
ALTER SESSION SET NLS_DATE_LANGUAGE='AMERICAN';
也可以這樣
TO_DATE ('2002-08-26', 'YYYY-mm-dd', 'NLS_DATE_LANGUAGE = American')
4. 兩個日期間的天數
select floor(sysdate - to_date('20020405','yyyymmdd')) from al;
5. 時間為null的用法
select id, active_date from table1
UNION
select 1, TO_DATE(null) from al;
注意要用TO_DATE(null)
6.月份差
a_date between to_date('20011201','yyyymmdd') and to_date('20011231','yyyymmdd')
那麼12月31號中午12點之後和12月1號的12點之前是不包含在這個范圍之內的。
所以,當時間需要精確的時候,覺得to_char還是必要的
7. 日期格式沖突問題
輸入的格式要看你安裝的ORACLE字元集的類型, 比如: US7ASCII, date格式的類型就是: '01-Jan-01'
alter system set NLS_DATE_LANGUAGE = American
alter session set NLS_DATE_LANGUAGE = American
或者在to_date中寫
select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from al;
注意我這只是舉了NLS_DATE_LANGUAGE,當然還有很多,
可查看
select * from nls_session_parameters
select * from V$NLS_PARAMETERS
8.
select count(*)
from ( select rownum-1 rnum
from all_objects
where rownum <= to_date('2002-02-28','yyyy-mm-dd') - to_date('2002-
02-01','yyyy-mm-dd')+1
)
where to_char( to_date('2002-02-01','yyyy-mm-dd')+rnum-1, 'D' )
not in ( '1', '7' )
查找2002-02-28至2002-02-01間除星期一和七的天數
在前後分別調用DBMS_UTILITY.GET_TIME, 讓後將結果相減(得到的是1/100秒, 而不是毫秒).
9. 查找月份
select months_between(to_date('01-31-1999','MM-DD-YYYY'),to_date('12-31-1998','MM-DD-YYYY')) "MONTHS" FROM DUAL;
1
select months_between(to_date('02-01-1999','MM-DD-YYYY'),to_date('12-31-1998','MM-DD-YYYY')) "MONTHS" FROM DUAL;
1.03225806451613
10. Next_day的用法
Next_day(date, day)
Monday-Sunday, for format code DAY
Mon-Sun, for format code DY
1-7, for format code D
11
select to_char(sysdate,'hh:mi:ss') TIME from all_objects
注意:第一條記錄的TIME 與最後一行是一樣的
可以建立一個函數來處理這個問題
create or replace function sys_date return date is
begin
return sysdate;
end;
select to_char(sys_date,'hh:mi:ss') from all_objects;
12.獲得小時數
extract()找出日期或間隔值的欄位值
SELECT EXTRACT(HOUR FROM TIMESTAMP '2001-02-16 2:38:40') from offer
SQL> select sysdate ,to_char(sysdate,'hh') from al;
SYSDATE TO_CHAR(SYSDATE,'HH')
-------------------- ---------------------
2003-10-13 19:35:21 07
SQL> select sysdate ,to_char(sysdate,'hh24') from al;
SYSDATE TO_CHAR(SYSDATE,'HH24')
-------------------- -----------------------
2003-10-13 19:35:21 19
13.年月日的處理
select older_date,
newer_date,
years,
months,
abs(
trunc(
newer_date-
add_months( older_date,years*12+months )
)
) days
from ( select
trunc(months_between( newer_date, older_date )/12) YEARS,
mod(trunc(months_between( newer_date, older_date )),12 ) MONTHS,
newer_date,
older_date
from (
select hiredate older_date, add_months(hiredate,rownum)+rownum newer_date
from emp
)
)
14.處理月份天數不定的辦法
select to_char(add_months(last_day(sysdate) +1, -2), 'yyyymmdd'),last_day(sysdate) from al
16.找出今年的天數
select add_months(trunc(sysdate,'year'), 12) - trunc(sysdate,'year') from al
閏年的處理方法
to_char( last_day( to_date('02' | | :year,'mmyyyy') ), 'dd' )
如果是28就不是閏年
㈤ 在資料庫中如何查詢當天的數據
查詢當天的數據的方法是:
select *
from tabname
where trunc(dtcol) = trunc(sysdate)
或者:
select *
from tabname
where dtcol >= trunc(sysdate) and dtcol < trunc(sysdate) + 1
㈥ 根據資料庫里Date類型的欄位查詢
select * from shop where date = convert(Datetime,『2015/7/27』)
㈦ oracle資料庫 date時間類型查詢昨天、前7天、前30天、前1年的數據,sql語句怎麼寫
1、打開plsql,連接上oracle資料庫,使用sql語句創建一張測試表。
㈧ 求助:SQL操作orcal資料庫 根據date時間查詢數據
str = " select AA,BB,CC from DATA01 where ID='00123'
and to_char(LOCATETIME,'yyyy-mm-dd hh24:mi:ss')>=' "+StartTime+" '
and to_char(LOCATETIME,'yyyy-mm-dd hh24:mi:ss')<=' "+EndTime " ' ";
字元類型的值要用 單引號 括起來
㈨ oracle中,有一個test表,表中有一date類型的date欄位,如何根據條件查詢date數據啊
以下每一句效果都一樣:
1、Select * from a where date between to_date('2018-1-1', 'yyyy-mm-dd') and to_date('2018-8-1','yyyy-mm-dd')
2、Select * from a where date between to_date('2018/1/1', 'yyyy/mm/dd') and to_date('2018/8/1','yyyy/mm/dd')
3、Select * from a where date between to_date('2018-1-1', 'yyyy/mm/dd') and to_date('2018/8/1','yyyy-mm-dd')
(9)資料庫date查詢擴展閱讀
資料庫中Date與DateTime的區別
Date:代表xxxx年xx月xx日 只表示前面的日期,是SQL Server 2008新引進的數據類型。它表示一個日子,不包含時間部分,可以表示的日期范圍從公元元年1月1日到9999年12月31日,只需要3個位元組的存儲空間。
DateTime:代表xxxx年xx月xx日xx時xx分xx秒 精確到時分秒,用於做時間戳,日期和時間部分,可以表示的日期范圍從公元1753年1月1日00:00:00.000 到9999年12月31日23:59:59.997 ,精確到3.33毫秒,它需要8個位元組的存儲空間。
㈩ sql server 資料庫里的date欄位日期格式是2009-12-3 17:36:26,怎樣通過sql語句查詢出當天的記錄
120 或者 20 yyyy-mm-dd hh:mi:ss(24h) 是這樣的,
where convert(varchar(10), date, 120) = '2010-10-15'這樣是錯誤的。找不出記錄的如果date是datetime類型
style值參考如下:
Style ID Style 格式
100 或者 0 mon dd yyyy hh:miAM (或者 PM)
101 mm/dd/yy
102 yy.mm.dd
103 dd/mm/yy
104 dd.mm.yy
105 dd-mm-yy
106 dd mon yy
107 Mon dd, yy
108 hh:mm:ss
109 或者 9 mon dd yyyy hh:mi:ss:mmmAM(或者 PM)
110 mm-dd-yy
111 yy/mm/dd
112 yymmdd
113 或者 13 dd mon yyyy hh:mm:ss:mmm(24h)
114 hh:mi:ss:mmm(24h)
120 或者 20 yyyy-mm-dd hh:mi:ss(24h)
121 或者 21 yyyy-mm-dd hh:mi:ss.mmm(24h)
126 yyyy-mm-ddThh:mm:ss.mmm(沒有空格)
130 dd mon yyyy hh:mi:ss:mmmAM
131 dd/mm/yy hh:mi:ss:mmmAM