⑴ sql server关于判断日期为当月第几周星期几问题
星期几问题:DatePart, DateName 都可以满足你的要求了
当月第几周:简单点,用 DatePart,这个可能跟系统区域语言设置有关(国外都是周日是第一天,中国周一是第一天),具体想更好,就自己看着办啦。
举个例:求 2013/11/07是11月第几周
SELECT DATEPART(WEEK, '2013/11/07') - DATEPART(WEEK, '2013/11/01') + 1
即,求出 11月7 号是一年中第几周,减去 11月1 号是一年中第几周的值,因从 1 开始计数,所以加个 1
⑵ sql 取周数
先用dateadd(dd,1,.....)来加一天,再用你的办法
如cast(dateadd(dd,1,getdate()) as int)/7-cast(dateadd(dd,1,'2009-1-1') as int)/7
⑶ sql获取当前周几
使用datename函数
⑷ sql怎么把一年中的每周数都显示出来
LZ给的红包实在少点。回头给补上呀!
----------------------------
这个题的难度不再怎么显示周,而是中国的文化问题,中国把周一当第一天,而中国用的大多数数据库都是国外的,国外基本都是把周日当第一天,所以按周统计或排序的基本都有误差,很多函数也用不了。
使用的是SqlServer数据库,别的数据库也会有以上问题,LZ自己多思考,方法如下:
(datepart(week, [CreateDate] + @@DateFirst - 1)-1) 才是真正的在中国能用的一年中的第几周。记住这是一年中的,不能跨年份,跨年份要用where 过滤年份。
第一:排序输出
SELECT [CreateDate], (datepart(week, [CreateDate] + @@DateFirst - 1)-1)
FROM [ST_Inventory]
order by (datepart(week, [CreateDate] + @@DateFirst - 1)-1)
第二:分组输出
SELECT MAX([CreateDate]), (datepart(week, [CreateDate] + @@DateFirst - 1)-1)
FROM [ST_Inventory]
group by (datepart(week, [CreateDate] + @@DateFirst - 1)-1)
⑸ sql 时间星期几
selectdatename(dw,getdate())
取日期的各项参数
年 yy, yyyy
季度 qq, q
月 mm, m
年中的日 dy, y
日 dd, d
周 wk, ww
星期 dw, w
小时 hh
分钟 mi, n
秒 ss, s
毫秒 ms
微妙 mcs
纳秒 ns
楼上太谦虚了~
⑹ 在sql中怎样获得已知日期是星期几
Oracle数据库:
第一个: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 al);
第二个语句:
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
(6)sql周几扩展阅读:
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
⑺ SQL如何查询连续几周的数
例:查询 ‘2017-1-1’是2017年的第几周,语句如下
1
select datepart(wk,'2017-1-1')
datepart函数说明
一、函数功能:DATEPART() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。
二、语法:DATEPART(datepart,date)
三、参数说明:date 参数是合法的日期表达式。datepart 参数可以是下列的值:
四、实例演示
假设我们有下面这个 "Orders" 表:
我们使用如下 SELECT 语句:
1
2
3
4
5
SELECT DATEPART(yyyy,OrderDate) AS OrderYear,
DATEPART(mm,OrderDate) AS OrderMonth,
DATEPART(dd,OrderDate) AS OrderDay
FROM Orders
WHERE OrderId=1
⑻ 怎样用SQL算出一个时间段中一共有几周
看你不满一周的怎么处理了:
(1)不满一周按一周计:
select datediff(week,起始时间,截止时间)
(2)不满一周舍去:
select datediff(day,起始时间,截止时间)/7
(3)不满一周按小数计:
select datediff(day,起始时间,截止时间)*1.0/7
至于要保留几位小数之类的就在此基础上调用相关的数值函数就行.
以上针对sql server数据库.
⑼ SQL语句算出今天是这个月的星期几
sql server
SELECT DATEPART(weekday,GETDATE())
注意外国人把星期天当作一个星期的第一天,所以1是星期天
⑽ SQL怎么获取星期几
今天工作中遇到一个需求:在每周的星期一至星期五的下午四点到五点,禁用一个程序的功能。这个功能是依赖于数据库中的存储过程的,因此想到了一个在存储过程中处理这个方法的解决方案。
if(当前时间在星期一至星期五之间and当前时间在16点至17点之间)beginreturnend
这个方法基于两个T-SQL内置函数:DATEPART()和@@DATEFIRST
DATEPART()函数的第一个参数可以是”weekday”,这时返回日期的星期数,在当前星期序列的次序。这个序列次序则依赖于SET DATEFIRST设置的参数,且可以通过@@DATEFIRST函数查看。所以DATEPART(WRRKDAY,GETDATE())这样获得的一个值是相对值。且相对的原点还是未知,这样会造成BUG。因此应该对这个方法进行一定的修改。
–加入一些相对偏移后的获取当前是星期几的方法DATEPART(WEEKDAY,