1. oracle sql語句,日期格式轉換
TO_DATE格式(以時間:2007-11-02 13:45:25為例)
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; //獲取時間的秒
2、字元串和時間互轉
select to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss') from al
select to_char( to_date(222,'J'),'Jsp') from al //顯示Two Hundred Twenty-Two
(1)sql語句日期區間轉為列表擴展閱讀
date 轉換為字元串:
to_char(日期,」轉換格式」 ) 即把給定的日期按照「轉換格式」轉換。
轉換的格式:
表示year的:y 表示年的最後一位 yy 表示年的最後2位 yyy 表示年的最後3位 yyyy 用4位數表示年。
表示month的:mm 用2位數字表示月;mon 用簡寫形式 比如11月或者nov ;month 用全稱 比如11月或者november。
表示day的:dd 表示當月第幾天;ddd表示當年第幾天;dy 當周第幾天 簡寫 比如星期五或者fri;day當周第幾天全寫。比如星期五或者friday。
表示hour的:hh 2位數表示小時 12進制; hh24 2位數表示小時 24小時。
表示minute的:mi 2位數表示分鍾。
表示second的:ss 2位數表示秒60進制。
2. 怎麼用SQL語句把兩個日期間的所有日期列出一個列表
http://accessoft.com/blog/article-show.asp?userid=20576&Id=8117
這個是日期生成代碼
3. SQL查詢語句,將同一個月份里的前兩個日期分別成為一列
假設數據在vt表中, date, postdate都為datetime類型(SQL Server 2005或以上適用), 查詢結果未對日期值進行格式化, 查詢SQL如下:
selectd.monthTxt,
max(casewhend.idx=1thend.dateelsenullend)asdate1,
max(casewhend.idx=2thend.dateelsenullend)asdate2,
max(casewhend.idx=1thend.postdateelsenullend)aspostdate1,
max(casewhend.idx=2thend.postdateelsenullend)aspostdate2
from(
selects.date,s.postdate,
left(convert(nvarchar(10),s.date,120),7)asmonthTxt,
row_number()over(partitionbyleft(convert(nvarchar(10),s.date,120),7)orderbys.date)asidx
fromvts
)d
whered.idxin(1,2)
groupbyd.monthTxt
結果如下圖:
SQL說明:
left(convert(nvarchar(10), s.date, 120), 7)是獲取月份的字串, 就是上圖的monthTxt;
裡面的子查詢使用了row_number分組編號, 按月份字串進行分組, date值升序進行排序編號:
row_number()over(partitionbyleft(convert(nvarchar(10),s.date,120),7)orderbys.date)asidx;
最外面的查詢則按月份分組查詢, 獲取每月前兩個日期date, postdate值
4. SQL語句實現一段時間內的每一個日期的列表
declear int @i
declare varchar(8000) @sql
set @i=1
while(@i<7)
set @sql = select dateget()
set @sql = @sql + dateAdd(day,@i,dateget())
@i = @i+1
end
exce @sql
這個是查今天開始7天的日期