T-SQL Yıl bazlı tarih ve Saat bilgilerini Yazdırmak

Merhaba ;

Belirli zamanlarda Yıl bazlı tarih ve Saat bilgisini direk yazdırmak için ;

SET DATEFORMAT ymd

CREATE TABLE TBL_SAAT (
    ID int,
    SAAT nvarchar(50))

INSERT INTO TBL_SAAT (ID, SAAT) VALUES
(1, N'00:00'),
(2, N'01:00'),
(3, N'02:00'),
(4, N'03:00'),
(5, N'04:00'),
(6, N'05:00'),
(7, N'06:00'),
(8, N'07:00'),
(9, N'08:00'),
(10, N'09:00'),
(11, N'10:00'),
(12, N'11:00'),
(13, N'12:00'),
(14, N'13:00'),
(15, N'14:00'),
(16, N'15:00'),
(17, N'16:00'),
(18, N'17:00'),
(19, N'18:00'),
(20, N'19:00'),
(21, N'20:00'),
(22, N'21:00'),
(23, N'22:00'),
(24, N'23:00')
GO

SELECT * FROM TBL_SAAT

 
 
 
CREATE PROCEDURE [dbo].[_SP_YIL_AKTARIM] (@Year INT,
@Month INT)

AS

BEGIN

 
	DECLARE @sonGun INT
	DECLARE @SonrakiAy INT

	DELETE FROM  TBL_TALEP_KW
    WHERE MONTH(TARIH) = @Month
	------------------------------------------------------------------ Seçilen Yıl ve Ay ın son günü---------------------------------
	IF @Month <> 12
		SET @SonrakiAy = @Month + 1
	ELSE
		SET @SonrakiAy = 1

	--select dateadd(d,-1,convert(datetime,convert(char(4),@Year)+right('0'+convert(varchar,@SonrakiAy),2)+'01'))SonGun

	SET @sonGun = DATEPART(DAY, (DATEADD(d, -1, CONVERT(DATETIME, CONVERT(CHAR(4), @Year) + RIGHT('0' + CONVERT(VARCHAR, @SonrakiAy), 2) + '01'))))
	--PRINT @sonGun
	 
	IF OBJECT_ID('tempdb..#Tarih') IS NOT NULL
		DROP TABLE #Tarih
	CREATE TABLE #Tarih (
		Tarih DATE
	   ,Gun NVARCHAR(15)
	)
	DECLARE @Day INT = 1
	DECLARE @Date DATE = DATEFROMPARTS(@Year, @Month, @Day)


	WHILE (@Day <= @sonGun)
	BEGIN
	SET @Date = CAST(CONVERT(VARCHAR, @Year) + '-' + CONVERT(VARCHAR, @Month) + '-' + CONVERT(VARCHAR, @Day) AS DATE)
	SET @Day += 1
	INSERT INTO #Tarih (Tarih, Gun)
		VALUES (@Date, DATENAME(dw, @Date))
	--Select cast(@Date AS date) , cast(datename(dw,@Date) AS  nvarchar(15))
	END
	-------------------------------------------------------------------------------------------------------------------


	 
	 
	BEGIN
		INSERT INTO TBL_TALEP_KW (TARIH, SAAT, TALEP_KW)

			(
			SELECT
				Tarih
			   ,SAAT
			   ,0
			FROM #Tarih t
			LEFT OUTER JOIN TBL_SAAT
				ON 1 = 1

			);
 
	--SET @SONUC = CAST( @Month AS NVARCHAR(50)) +  ' Ayının Kayıtları Eklendi.';
 END
 
 
	 
 END
	 



 

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir