各位大大帮忙!怎样在SQL数据库中计算周别???? 小弟在线等!

chmz 2003-12-17 06:44:52
由于在程序中的时间是取自SQL SERVER的,因此如果在存储过程中要取出SQL SERVER中的周别,该用什么语句计算出周别!!!!!
...全文
282 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
victorycyz 2003-12-18
  • 打赏
  • 举报
回复
看联机帮助中的日期函数部分。

另,从你的回贴看,我觉得有些东西最好是自己多尝试多实践,才会印象深刻。为什么“结果是01还是1”这样的疑问都不去自己验证一下呢?不客气地说,你这样懒怎么能学好编程呢?
chmz 2003-12-18
  • 打赏
  • 举报
回复
to victorycyz(中海,学SQL Server的菜鸟):

哪是因為當時我是在網吧上網﹐當然不能验证"结果是01还是1"这样的疑问。
chmz 2003-12-17
  • 打赏
  • 举报
回复
不管是整型还是字符型,只要能取出周别就可以了。
sdhdy 2003-12-17
  • 打赏
  • 举报
回复
不过,这样你的@WEEK类型不能为整型了,必须为字符型
sdhdy 2003-12-17
  • 打赏
  • 举报
回复
是1,可以这样
set @WEEK=right('0'+cast(datepart(ww,getdate()) as varchar),2)
chmz 2003-12-17
  • 打赏
  • 举报
回复
小弟还有一个问题:set @WEEK= datepart(ww,getdate())中的@WEEK的值是01汪是1?小弟需要的是01!
chmz 2003-12-17
  • 打赏
  • 举报
回复
Thanks!

小弟去试试!
sdhdy 2003-12-17
  • 打赏
  • 举报
回复
这样
select @WEEK= datepart(ww,getdate())

set @WEEK= datepart(ww,getdate())
chmz 2003-12-17
  • 打赏
  • 举报
回复
sdhdy(大江东去...) ( ) 信誉:102

这句:select datepart(ww,getdate())--本周是一年的第几周
应该是小弟所需要的,在存储过程中能不能用下面的语句:
SET @WEEK=select datepart(ww,getdate())

????
yun198183 2003-12-17
  • 打赏
  • 举报
回复
楼上说的对,
sdhdy 2003-12-17
  • 打赏
  • 举报
回复
select datepart(dw,getdate())--本周的第几天

select datepart(ww,getdate())--本周是一年的第几周
sdhdy 2003-12-17
  • 打赏
  • 举报
回复
DATEPART
返回代表指定日期的指定日期部分的整数。

语法
DATEPART ( datepart , date )

参数
datepart

是指定应返回的日期部分的参数。下表列出了 Microsoft® SQL Server™ 识别的日期部分和缩写。

日期部分 缩写
year yy, yyyy
quarter qq, q
month mm, m
dayofyear dy, y
day dd, d
week wk, ww
weekday dw
Hour hh
minute mi, n
second ss, s
millisecond ms


week (wk, ww) 日期部分反映对 SET DATEFIRST 作的更改。任何一年的 1 月 1 日定义了 week 日期部分的开始数字,例如:DATEPART(wk, 'Jan 1, xxxx') = 1,此处 xxxx 代表任一年。

weekday (dw) 日期部分返回对应于星期中的某天的数,例如:Sunday = 1、Saturday = 7。weekday 日期部分产生的数取决于 SET DATEFIRST 设定的值,此命令设定星期中的第一天。

date

是返回 datetime 或 smalldatetime 值或日期格式字符串的表达式。对 1753 年 1 月 1 日之后的日期用datetime 数据类型。更早的日期存储为字符数据。当输入 datetime 值时,始终将其放入引号中。因为 smalldatetime 只精确到分钟,所以当用 smalldatetime 值时,秒和毫秒总是 0。

如果只指定年份的最后两位数字,则小于或等于"两位数年份截止期"配置选项的值的最后两位数字的数字所在世纪与截止年所在世纪相同。大于该选项的值的最后两位数字的数字所在世纪为截止年所在世纪的前一个世纪。例如,如果 two digit year cutoff 为 2049 (默认),则 49 被解释为 2049,2050 被解释为 1950。为避免模糊,请使用四位数的年份。

有关时间值指定的更多信息,请参见时间格式。有关日期指定的更多信息,请参见 datetime 和 smalldatetime。

返回类型
int

注释
DAY、MONTH、和 YEAR 函数分别是 DATEPART(dd, date)、DATEPART(mm, date)、和 DATEPART(yy, date) 的同义词。

示例
GETDATE 函数返回当前日期;然而,比较时并不总是需要完整的日期信息(通常只是对日期的一部分进行比较)。此示例显示 GETDATE 及 DATEPART 的输出。

SELECT GETDATE() AS 'Current Date'
GO

下面是结果集:

Current Date
---------------------------
Feb 18 1998 11:46PM

SELECT DATEPART(month, GETDATE()) AS 'Month Number'
GO

下面是结果集:

Month Number
------------
2

此示例假设日期是 5 月 29 日。

SELECT DATEPART(month, GETDATE())
GO

下面是结果集:

-----------
5

(1 row(s) affected)

在此示例中,以数字表示日期。注意:SQL Server 将 0 解释为 01/01/1900。

SELECT DATEPART(m, 0), DATEPART(d, 0), DATEPART(yy, 0)

下面是结果集:

----- ------ ------
1 1 1900

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧