sql 显示星期几函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
--返回第幾周
DECLARE @Dt datetime
 
SELECT @Dt='2008-02-21'
 
SELECT DATEPART( wk, @Dt)
 
SELECT DATEPART( wk, GETDATE())
SELECT DATEPART(weekday, GETDATE())
 
SELECT * FROM WorkAttendanceReport
SELECT  [dbo].[GetWeekName] (WorkAttendanceDatetime) FROM WorkAttendanceReport
 
 
---WorkAttendanceDatetime
declare @Date smalldatetime,@weekint int,@weekname nvarchar(50)
set @Date='2011-08-15'
select @weekint= DATEPART(weekday, @Date)
--SELECT @weekint   ---塗聚文 Geovin Du
--select @weekint=DATEPART(weekday, WorkAttendanceDatetime) from WorkAttendanceReport WHERE WorkAttendanceID=1
SELECT @weekint
 
if @weekint=1
    SET @weekname=N'星期日'
if @weekint=2
    SET @weekname=N'星期一'
if @weekint=3
    SET @weekname=N'星期二'
if @weekint=4
    SET @weekname=N'星期三'
if @weekint=5
    SET @weekname=N'星期四'
if @weekint=6
    SET @weekname=N'星期五'
if @weekint=7
    SET @weekname=N'星期六'
SELECT @weekname
 
---返回星期幾
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetWeekName]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[GetWeekName]
GO
CREATE   function  GetWeekName
   @Date smalldatetime --参数
)
returns nvarchar(500)
as
begin
declare @weekint int,@weekname nvarchar(50)
--set @Date='2011-08-15'
select @weekint= DATEPART(weekday, @Date)
--SELECT @weekint
--select @weekint=DATEPART(weekday, WorkAttendanceDatetime) from WorkAttendanceReport WHERE WorkAttendanceID=1
--SELECT @weekint
 
if @weekint=1
    SET @weekname=N'星期日'
if @weekint=2
    SET @weekname=N'星期一'
if @weekint=3
    SET @weekname=N'星期二'
if @weekint=4
    SET @weekname=N'星期三'
if @weekint=5
    SET @weekname=N'星期四'
if @weekint=6
    SET @weekname=N'星期五'
if @weekint=7
    SET @weekname=N'星期六'
RETURN @weekname
end
GO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
CREATE FUNCTION [dbo].[firstOfWeek]
    (@DATE DATETIME
    ,@WEEK_START_DAY INT = 1)
 
RETURNS DATETIME
 
    /*  @date = date to calculate
        @WEEK_START_DAY = the dayNumber of the first day of the week
 
        Sun = 1, Mon = 2, Tue = 3, Wed = 4
        Thu = 5, Fri = 6, Sat = 7
        Default to Sunday
    */
AS
BEGIN
         
    DECLARE @START_OF_WEEK_DATE DATETIME
 
    -- Check for valid day of week
    IF @WEEK_START_DAY between 1 and 7
        BEGIN  
            SET
                @START_OF_WEEK_DATE =
                    CASE WHEN @WEEK_START_DAY - datepart(dw,@DATE) > 0 THEN
                        dateadd(day, @WEEK_START_DAY - datepart(dw,@DATE) - 7, @DATE)
                    ELSE
                        dateadd(day, @WEEK_START_DAY - datepart(dw,@DATE), @DATE)
                    END        
        END
 
    RETURN @START_OF_WEEK_DATE
 
END

posted @   ®Geovin Du Dream Park™  阅读(2597)  评论(3编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
历史上的今天:
2009-08-15 The 10 Commandments of Web Design
< 2011年8月 >
31 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 1 2 3
4 5 6 7 8 9 10
点击右上角即可分享
微信分享提示