27,579
社区成员
发帖
与我相关
我的任务
分享
INSERT INTO [Attend20].[dbo].[AttdCardRec]([UserId], [CardId],
[CardDate], [CardTime], [CardInOut], [CardCollectDate], [CardEqu], [CardSignFlag],
[CardReason], [EquType], [OperID], [OperDate], [CardFlag])
VALUES('UT000812','00000005',CONVERT(varchar(10),getdate(),120),
RIGHT(CONVERT(CHAR(16),DATEADD(MINUTE,CAST(RAND()*100 AS INT)%31,'2013-01-01 07:30'),120),5),--'07:45',
'', CONVERT(varchar(10),getdate(),120),'001','0','',
'','',NULL,'019')
--确实会出现07:60的情况,修正为:+29
select (CASE WHEN ABS(CHECKSUM(NEWID())%31) = 30 THEN '08:00' ELSE '07:' + RIGHT('00'+LTRIM(ABS(CHECKSUM(NEWID())%31)+29), 2) END)
INSERT INTO [Attend20].[dbo].[AttdCardRec]
( [UserId] ,
[CardId] ,
[CardDate] ,
[CardTime] ,
[CardInOut] ,
[CardCollectDate] ,
[CardEqu] ,
[CardSignFlag] ,
[CardReason] ,
[EquType] ,
[OperID] ,
[OperDate] ,
[CardFlag]
)
VALUES ( 'UT000812' ,
'00000005' ,
CONVERT(VARCHAR(10), GETDATE(), 120) ,
(CASE WHEN ABS(CHECKSUM(NEWID())%31) = 30 THEN '08:00' ELSE '07:' + RIGHT('00'+LTRIM(ABS(CHECKSUM(NEWID())%31)+30), 2) END) ,
'' ,
CONVERT(VARCHAR(10), GETDATE(), 120) ,
'001' ,
'0' ,
'' ,
'' ,
'' ,
NULL ,
'019'
)
WITH a1 (tt) AS
(
SELECT '07:45'
)
,a2 AS
(
SELECT CAST('2013/01/01 '+tt AS DATETIME) tt
FROM a1
)
SELECT RIGHT(convert(CHAR(16),DATEADD(MINUTE,-15,tt),20),5)+'-'+RIGHT(convert(CHAR(16),DATEADD(MINUTE,15,tt),20),5)
FROM a2