扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
Oracle数据库:
创新互联公司专业提供乐山服务器托管服务,为用户提供五星数据中心、电信、双线接入解决方案,用户可自行在线购买乐山服务器托管服务,并享受7*24小时金牌售后服务。
第一个:SELECT DECODE(dw,
0,
'星期天',
1,
'星期一',
2,
'星期二',
3,
'星期三',
4,
'星期四',
5,
'星期五',
6,
'星期六') WEEK_DAY
FROM (SELECT 7 -
TO_NUMBER(NEXT_DAY(TO_DATE('2012-12-12', 'yyyy-mm-dd'), 1) -
TO_DATE('2012-12-12', 'yyyy-mm-dd')) dw
FROM dual);
第二个语句:
SELECT TO_CHAR(TO_DATE('2012-12-12', 'YYYY-MM-DD'), 'DAY') WEEK_DAY
FROM DUAL
SqlServer数据库:
select case datepart(weekday, getdate())
when 1 then
'星期天'
when 2 then
'星期一'
when 3 then
'星期二'
when 4 then
'星期三'
when 5 then
'星期四'
when 6 then
'星期五'
when 7 then
'星期六'
end
扩展资料:
SQL相关函数:
SQL Aggregate 函数:SQL Aggregate 函数计算从列中取得的值,返回一个单一的值。
有用的 Aggregate 函数:AVG() - 返回平均值,COUNT() - 返回行数,FIRST() - 返回第一个记录的值,LAST() - 返回最后一个记录的值,MAX() - 返回最大值,MIN() - 返回最小值,SUM() - 返回总和
SQL Scalar 函数:SQL Scalar 函数基于输入值,返回一个单一的值。
有用的 Scalar 函数:UCASE() - 将某个字段转换为大写,LCASE() - 将某个字段转换为小写,MID() - 从某个文本字段提取字符;
LEN() - 返回某个文本字段的长度,ROUND() - 对某个数值字段进行指定小数位数的四舍五入,NOW() - 返回当前的系统日期和时间,FORMAT() - 格式化某个字段的显示方式。
参考资料:百度百科——sql
说一下我的思路吧.首先查询出当前月的每一天进行排序,然后再对每一天进行星期几的查询,再定位第一个星期五,我们用的也是Oracle,语句应该也是大同小异.
select ndate(select trunc(sysdate,'mm')+level-1 as ndate from daul connect by level =31) t where to_char(ndate,'dy')='星期五' and rownum='1';
我没明白你说的最后一周是啥意思。
我给你提供三个函数,应该就能拼出来你想要的东西
(1)dateadd(day,-3,getdate())当前日期-3天
dateadd(month,-2,getdate())当前日期-2月
dateadd(year,-1,getdate())当前日期-1年
(2)如果你要单独取年 select year(getdate()) =2017
取月 month(getdate()) =1
取日 day(getdate()) =24
(3)你要取星期几 select datepart(weekday,getdate()) 周一到周日是2,3,4,5,6,7,1
SQL SERVER查询时间是一年中第几周,使用函数 datepart()。
例:查询 ‘2017-1-1’是2017年的第几周,语句如下
select datepart(wk,'2017-1-1')
datepart函数说明
一、函数功能:DATEPART() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。
二、语法:DATEPART(datepart,date)
三、参数说明:date 参数是合法的日期表达式。datepart 参数可以是下列的值:
四、实例演示
假设我们有下面这个 "Orders" 表:
我们使用如下 SELECT 语句:
SELECT DATEPART(yyyy,OrderDate) AS OrderYear,
DATEPART(mm,OrderDate) AS OrderMonth,
DATEPART(dd,OrderDate) AS OrderDay
FROM Orders
WHERE OrderId=1
结果:
2.每年每个月的信息
sql = select datepart(year,date)*100+datepart(month,date) YEARMONTH,* SPSL,distinct(employee) from user
group by uname
1.每月每个星期的信息
sql = select * from user where date between DateAdd(day,day(getdate())-1,getdate()) and DateAdd(day,7-day(getdate()),getdate())
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流