|
发表于 2013-4-18 14:58:00
|
显示全部楼层
哥哥来了,路过顺便看一下,时间问题,小小的写一段sql,不是很完整,但是按着逻辑下去你可以完成。
[code=sql]ALTER PROC FARE_INSERT
@DeviceSN VARCHAR(20), --設備編號
@FromDate DATE, --開始日期
@ToDate DATE, --結束日期
@Fare FLOAT --收費
AS
DECLARE @From_Year INT, @To_Year INT,@From_Month INT, @To_Month INT, @Month_amount INT
SET @From_Year = DATEPART(YEAR,@FromDate)
SET @To_Year = DATEPART(YEAR,@ToDate)
SET @From_Month = DATEPART(MONTH,@FromDate)
SET @To_Month = DATEPART(MONTH,@ToDate)
BEGIN TRANSACTION
IF @From_Year = @To_Year
BEGIN
SET @Month_amount = @To_Month - @From_Month
PRINT CONVERT(VARCHAR(20), @Month_amount) + '只需要在此處循環執行INSERT Opeartion即可'
END
ELSE
BEGIN
PRINT '求出年份差,再進一步取月份即可,不再写出'
END
COMMIT TRANSACTION
--这里是测试执行
EXEC FARE_INSERT 'sn0001','2012-9-27','2012-12-27',500[/code] |
|