求教数据库中存编码'01,02,03'转成'星期一,星期二,星期三'的查询SQL语句怎么写。

求教数据库中存编码'01,02,03'转成'星期一,星期二,星期三'的查询SQL语句怎么写。,第1张

设表中星期字段分别为01,02,03,04,05,06,07代表星期,字段名为WEEKD
那么可以这样写
SELECT WEEDNAME='星期'+SUBSTRING('一二三四五六日',CONVERT(INT,WEEKD),1) FROM TABLENAME

检索日期所在周的一周各天日期方法

一、用到的函数有datepart(),dateadd()

1、datepart()函数,返回代表指定日期的指定日期部分的整数。

语法:DATEPART ( datepart ,date )

参数:datepart

是指定应返回的日期部分的参数。参数如下

2、DATEADD() 函数在日期中添加或减去指定的时间间隔。

语法:DATEADD(datepart,number,date)

date 参数是合法的日期表达式。number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。

datepart 参数可以是下列的值:

二、以系统当前时间为例,检索一周各天时间的语句如下:

1、DATEPART(weekday,getdate())返回的是整型数值1-7,分别代表周日、周一到周六

2、语句分别获取周日到周六的日期时间,然后用union 进行检索结果连接。

3、已获取周日时间为例:

DATEPART(weekday,getdate()) 返回1,即当前日期就是周日,那么输出当前时间getdate(),

DATEPART(weekday,getdate()) 返回2,即前日期是周一,那么周日是前一天,使用函数获取前一天的日期:dateadd(dd,-1,getdate())

以此类推就获取了日期所在周的周日日期时间。

select 
case when DATEPART(weekday,getdate())=1 then getdate() 
     when DATEPART(weekday,getdate())=2 then dateadd(dd,-1,getdate())
     when DATEPART(weekday,getdate())=3 then dateadd(dd,-2,getdate())
     when DATEPART(weekday,getdate())=4 then dateadd(dd,-3,getdate())
     when DATEPART(weekday,getdate())=5 then dateadd(dd,-4,getdate())
     when DATEPART(weekday,getdate())=6 then dateadd(dd,-5,getdate())
     when DATEPART(weekday,getdate())=7 then dateadd(dd,-6,getdate()) end as '日期','周日' union
select
case when DATEPART(weekday,getdate())=1 then dateadd(dd,1,getdate())
     when DATEPART(weekday,getdate())=2 then dateadd(dd,0,getdate())
     when DATEPART(weekday,getdate())=3 then dateadd(dd,-1,getdate())
     when DATEPART(weekday,getdate())=4 then dateadd(dd,-2,getdate())
     when DATEPART(weekday,getdate())=5 then dateadd(dd,-3,getdate())
     when DATEPART(weekday,getdate())=6 then dateadd(dd,-4,getdate())
     when DATEPART(weekday,getdate())=7 then dateadd(dd,-5,getdate()) end as '日期','周一' union
select
case when DATEPART(weekday,getdate())=1 then dateadd(dd,2,getdate())
     when DATEPART(weekday,getdate())=2 then dateadd(dd,1,getdate())
     when DATEPART(weekday,getdate())=3 then dateadd(dd,0,getdate())
     when DATEPART(weekday,getdate())=4 then dateadd(dd,-1,getdate())
     when DATEPART(weekday,getdate())=5 then dateadd(dd,-2,getdate())
     when DATEPART(weekday,getdate())=6 then dateadd(dd,-3,getdate())
     when DATEPART(weekday,getdate())=7 then dateadd(dd,-4,getdate()) end as '日期','周二' union
select
case when DATEPART(weekday,getdate())=1 then dateadd(dd,3,getdate())
     when DATEPART(weekday,getdate())=2 then dateadd(dd,2,getdate())
     when DATEPART(weekday,getdate())=3 then dateadd(dd,1,getdate())
     when DATEPART(weekday,getdate())=4 then dateadd(dd,0,getdate())
     when DATEPART(weekday,getdate())=5 then dateadd(dd,-1,getdate())
     when DATEPART(weekday,getdate())=6 then dateadd(dd,-2,getdate())
     when DATEPART(weekday,getdate())=7 then dateadd(dd,-3,getdate()) end as '日期','周三' union
select
case when DATEPART(weekday,getdate())=1 then dateadd(dd,4,getdate())
     when DATEPART(weekday,getdate())=2 then dateadd(dd,3,getdate())
     when DATEPART(weekday,getdate())=3 then dateadd(dd,2,getdate())
     when DATEPART(weekday,getdate())=4 then dateadd(dd,1,getdate())
     when DATEPART(weekday,getdate())=5 then dateadd(dd,0,getdate())
     when DATEPART(weekday,getdate())=6 then dateadd(dd,-1,getdate())
     when DATEPART(weekday,getdate())=7 then dateadd(dd,-2,getdate()) end as '日期','周四' union
select
case when DATEPART(weekday,getdate())=1 then dateadd(dd,5,getdate())
     when DATEPART(weekday,getdate())=2 then dateadd(dd,4,getdate())
     when DATEPART(weekday,getdate())=3 then dateadd(dd,3,getdate())
     when DATEPART(weekday,getdate())=4 then dateadd(dd,2,getdate())
     when DATEPART(weekday,getdate())=5 then dateadd(dd,1,getdate())
     when DATEPART(weekday,getdate())=6 then dateadd(dd,0,getdate())
     when DATEPART(weekday,getdate())=7 then dateadd(dd,-1,getdate()) end as '日期','周五' union
select
case when DATEPART(weekday,getdate())=1 then dateadd(dd,6,getdate())
     when DATEPART(weekday,getdate())=2 then dateadd(dd,5,getdate())
     when DATEPART(weekday,getdate())=3 then dateadd(dd,4,getdate())
     when DATEPART(weekday,getdate())=4 then dateadd(dd,3,getdate())
     when DATEPART(weekday,getdate())=5 then dateadd(dd,2,getdate())
     when DATEPART(weekday,getdate())=6 then dateadd(dd,1,getdate())
     when DATEPART(weekday,getdate())=7 then dateadd(dd,0,getdate()) end as '日期','周六'

三、执行结果

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 dual;   //日期转化为字符串

select to_char(sysdate,'yyyy')  as nowYear   from dual;   //获取时间的年

select to_char(sysdate,'mm')    as nowMonth  from dual;   //获取时间的月

select to_char(sysdate,'dd')    as nowDay    from dual;   //获取时间的日

select to_char(sysdate,'hh24')  as nowHour   from dual;   //获取时间的时

select to_char(sysdate,'mi')    as nowMinute from dual;   //获取时间的分

select to_char(sysdate,'ss')    as nowSecond from dual;   //获取时间的秒

2、字符串和时间互转

select to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss') from dual

select to_char( to_date(222,'J'),'Jsp') from dual //显示Two Hundred Twenty-Two 

扩展资料

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进制。

下面的语句取当前日期所在的星期的星期一的日期
select dateadd(day, 2-datepart(weekday,getdate()),getdate())
根据条件替换getdate(),就可以了

首先将数据源中的日期字段,使用日期格式化函数,格式化为Y-M的形式

增加一列,使用日期格式化函数,获取去年的月份信息,命名为LAST_DATE

对同一个视图,进行左连接,获取当月的金额以及去年该月份的金额

datepart函数中有第几周的写法
datepart(wk,‘日期’)这样就能查出来是第几周了,至于前面你的数字只要加上年份和w就可以了,其实剩下的就是字符串的截取和拼接了。

在函数CONVERT()中你可以使用许多种不同风格的日期和时间格式。表111显示了所有的格式。

表111日期和时间的类型

类型值标准输出

0Defaultmonddyyyyhh:miAM

1USAmm/dd/yy

2ANSIyymmdd

3British/Frenchdd/mm/yy

4Germanddmmyy

5Italiandd-mm-yy

6-ddmonyy

7-mondd,yy

8-hh:mi:ss

9Default--monddyyyy

hh:mi:ss:mmmAM(or)

10USAmm-dd-yy

11JAPANyy/mm/dd

12ISOyymmdd

13EuropeDefault--ddmonyyyy

hh:mi:ss:mmm(24h)

14-hh:mi:ss:mmm(24h)

类型0,9,和13总是返回四位的年。对其它类型,要显示世纪,把style值加上100。类型13和14返回24小时时钟的时间。类型0,7,和13返回的月份用三位字符表示(用Nov代表November)

对表111中所列的每一种格式,你可以把类型值加上100来显示有世纪的年(例如,00年将显示为2000年)。例如,要按日本标准显示日期,包括世纪,你应使用如下的语句:

SELECTCONVERT(VARCHAR(30),GETDATE(),111)

在这个例子中,函数CONVERT()把日期格式进行转换,显示为1997/11/30


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13395743.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-28
下一篇 2023-07-28

发表评论

登录后才能评论

评论列表(0条)

保存