SQL Server学习记录之convert和cast的用法

convert是日期格式化函数

cast是将目的数据类型转化为基本数据类型

在工作中有这么个需求,星期一到星期五开三个房间,星期六到星期日再增加两个房间,月末再增加一个房间


SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
go
--创建定时赛自动开启作业
create procedure ContestTask
as
begin
set nocount on
declare @_weekday int --星期几
declare @_currentdate datetime--当前时间
declare @_currentYMD varchar(20)--当前年月日
declare @_room_char varchar(50)
declare @_room_datatime datetime--房间时间
declare @_month_last datetime--本月的最后一天
set @_currentdate=getdate()--获得当前时间
set @_weekday=datepart(dw,@_currentdate) 
select @_currentYMD=CONVERT(varchar(20),@_currentdate, 23)--获得年月日
select @_month_last=DATEADD(Day,-1,CONVERT(char(8),DATEADD(Month,1,@_currentdate),120)+'1')--获取本月最后一天
if @_weekday>=2 and @_weekday<=6--周一到周五(开三个房间)
begin
	set @_room_char=@_currentYMD+' 18:00:00'--设置房间1时间
	select @_room_datatime=CAST(@_room_char as datetime)
	update TContestInfo set StartTime=@_room_datatime where ContestID=1
	set @_room_char=@_currentYMD+' 19:00:00'--设置房间2时间
	select @_room_datatime=CAST(@_room_char as datetime)
	update TContestInfo set StartTime=@_room_datatime where ContestID=2
	set @_room_char=@_currentYMD+' 20:00:00'--设置房间3时间
	select @_room_datatime=CAST(@_room_char as datetime)
	update TContestInfo set StartTime=@_room_datatime where ContestID=3
end
if @_weekday=1 or @_weekday=7--周六,周日(开五个房间)
begin
	set @_room_char=@_currentYMD+' 18:00:00'--设置房间1时间
	select @_room_datatime=CAST(@_room_char as datetime)
	update TContestInfo set StartTime=@_room_datatime where ContestID=1
	set @_room_char=@_currentYMD+' 19:00:00'--设置房间2时间
	select @_room_datatime=CAST(@_room_char as datetime)
	update TContestInfo set StartTime=@_room_datatime where ContestID=2
	set @_room_char=@_currentYMD+' 20:00:00'--设置房间3时间
	select @_room_datatime=CAST(@_room_char as datetime)
	update TContestInfo set StartTime=@_room_datatime where ContestID=3
	set @_room_char=@_currentYMD+' 16:00:00'--设置房间4时间
	select @_room_datatime=CAST(@_room_char as datetime)
	update TContestInfo set StartTime=@_room_datatime where ContestID=4
	set @_room_char=@_currentYMD+' 17:00:00'--设置房间5时间
	select @_room_datatime=CAST(@_room_char as datetime)
	update TContestInfo set StartTime=@_room_datatime where ContestID=5
end
if DATEDIFF(d,@_currentdate,@_month_last)=0--月末(开六个房间)
begin
	set @_room_char=@_currentYMD+' 18:00:00'--设置房间1时间
	select @_room_datatime=CAST(@_room_char as datetime)
	update TContestInfo set StartTime=@_room_datatime where ContestID=1
	set @_room_char=@_currentYMD+' 19:00:00'--设置房间2时间
	select @_room_datatime=CAST(@_room_char as datetime)
	update TContestInfo set StartTime=@_room_datatime where ContestID=2
	set @_room_char=@_currentYMD+' 20:00:00'--设置房间3时间
	select @_room_datatime=CAST(@_room_char as datetime)
	update TContestInfo set StartTime=@_room_datatime where ContestID=3
	set @_room_char=@_currentYMD+' 16:00:00'--设置房间4时间
	select @_room_datatime=CAST(@_room_char as datetime)
	update TContestInfo set StartTime=@_room_datatime where ContestID=4
	set @_room_char=@_currentYMD+' 17:00:00'--设置房间5时间
	select @_room_datatime=CAST(@_room_char as datetime)
	update TContestInfo set StartTime=@_room_datatime where ContestID=5
	set @_room_char=@_currentYMD+' 20:00:00'--设置房间6时间
	select @_room_datatime=CAST(@_room_char as datetime)
	update TContestInfo set StartTime=@_room_datatime where ContestID=6
end
end
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值