当前位置:首页 » 编程语言 » sql语句日期区间转为列表
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql语句日期区间转为列表

发布时间: 2022-12-21 01:55:40

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天的日期