PDA

View Full Version : ثبت اتوماتيك تاريخ در ركورد



ali_sorouri2005
دوشنبه 04 آذر 1387, 10:44 صبح
با سلام

من مي خوام زماني كه يه ركورد insert ميشه ، در يك فيلد ، تاريخ به صورت اتوماتيك توسط sql server درج شود.
چه جوري بايد انجام بشه؟

با تشكر

sjhosseini
دوشنبه 04 آذر 1387, 11:22 صبح
در store procedure مقدار اون فیلد رو برابر تابع GETDATE قرار بده

شاپرک
دوشنبه 04 آذر 1387, 11:48 صبح
چرا store procedure؟ Default اون فیلد رو برابر GETDATE قرار بده

_alish_
سه شنبه 05 آذر 1387, 09:18 صبح
بصورت شمسي



CREATE FUNCTION [ShamsiDate] (@DateLatin AS DateTime)
RETURNS nvarchar(10) AS
BEGIN
DECLARE @DateFarsi CHAR(10)
DECLARE @Days int
DECLARE @Tmp int
DECLARE @Year_Farsi int
DECLARE @Month_Farsi int
DECLARE @Day_Farsi int
SET @Days = DATEDIFF(DAY, '19000320', @DateLatin)
SET @Year_Farsi = 1279
SET @Month_Farsi = 01
SET @Day_Farsi = 01
SET @Tmp = @Days / 365
IF (@Tmp * 365) + ((@Tmp + 3) / 4) > @Days
SET @Tmp = @Tmp - 1
SET @Year_Farsi = @Year_Farsi + @Tmp
SET @Days = @Days - (@Tmp * 365) - ((@Tmp + 3) / 4)
IF @Days <= 186
BEGIN
SET @Tmp = @Days / 31
SET @Month_Farsi = @Month_Farsi + @Tmp
SET @Days = @Days - (@Tmp * 31)
END
ELSE
BEGIN
SET @Days = @Days - 186
SET @Tmp = @Days / 30
SET @Month_Farsi = @Month_Farsi + @Tmp + 6
SET @Days = @Days - (@Tmp * 30)
END
SET @Day_Farsi = @Day_Farsi + @Days
RETURN REPLACE(STR(@Year_Farsi, 4, 0) +'/'+
STR(@Month_Farsi, 2, 0) +'/'+
STR(@Day_Farsi,2, 0), ' ', '0')
END

Default Field :([dbo].[ShamsiDate](getdate()))

Kamyar.Kimiyabeigi
سه شنبه 05 آذر 1387, 10:09 صبح
كد جهت اضافه كردن مقدار تاريخ روز براي Default يك فيلد


ALTER TABLE dbo.TableName ADD CONSTRAINT
DF_TableName_FiledName DEFAULT GETDATE() FOR FiledName
GO

ali_sorouri2005
سه شنبه 05 آذر 1387, 11:32 صبح
با تشكر از همه دوستان
فقط اون كد تاريخ شمسي رو موقع insert چه جوري بايد ازش استفاده كنم.

_alish_
سه شنبه 05 آذر 1387, 15:49 عصر
از كد مربوطه معلومه ابتدا در User Defined Functions يه Function با كد بالا بساز
بعد در قسمت تعريف جداولت Default مقدار :([dbo].[ShamsiDate](getdate())) بگذار
موفق باشي