قیمت سرور خرید سرور قیمت سرور اچ پی قیمت رم سرور قیمت هارد سرور قیمت لپ تاپ قیمت لب تاب قیمت نوت بوک قیمت لپ تاپ ایسوس قیمت لپ تاپ لنوو قیمت لپ تاپ اچ پی قیمت لپ تاپ ایسر قیمت سوئیچ سیسکو قیمت مودم دی لینک قیمت مودم تی پی لینک لپ تاپ قیمت مادربرد قیمت یو پی اس فروش یو پی اس قیمت پرینتر قیمت دوربین مداربسته قیمت پرینترهای اچ پی دوربین مداربسته قیمت گوشی موبایل قیمت پاوربانک قیمت گوشی سامسونگ قیمت هارد اکسترنال قیمت هارد اس اس دی قیمت فلش مموری قیمت باتری لپ تاپ
سفارش تبلیغ
صبا
خداوند، سکوت را در سه جا دوست دارد :به هنگام خوانده شدن قرآن، به هنگام پیش رفتن به سوی دشمن، و به هنگام تشییع جنازه . [رسول خدا صلی الله علیه و آله]
MAMEHDI

قسمتی از کد زیر از لینک http://rastan.parsiblog.com/Posts/381 برداشته شده و تغییر داده شده است

-- Optimize By Mamehdi
CREATE FUNCTION [dbo].[SDAT] (@intDate DATETIME , @format as nvarchar(max))
 
RETURNS NVARCHAR(max)

BEGIN
/* Format Rules: (پنجشنبه 7 اردیبهشت 1394)
ChandShanbe -> پنجشنبه (روز هفته به حروف)
ChandShanbeAdadi -> 6 (روز هفته به عدد)
Rooz -> 7 (چندمین روز از ماه)
Rooz2 -> 07 (چندمین روز از ماه دو کاراکتری)
Maah -> 2 (چندمین ماه از سال)
Maah2 -> 02 (چندمین ماه از سال دو کاراکتری)
MaahHarfi -> اردیبهشت (نام ماه به حروف)
Saal -> 1394 (سال چهار کاراکتری)
Saal2 -> 94 (سال دو کاراکتری)
Saal4 -> 1394 (سال چهار کاراکتری)
SaalRooz -> 38 (چندمین روز سال)
Default Format -> "ChandShanbe Rooz MaahHarfi Saal"
*/
DECLARE @YY Smallint=year(@intdate),@MM Tinyint=10,@DD Smallint=11,@DDCNT Tinyint,@YYDD Smallint=0,
        @SHMM NVARCHAR(8),@SHDD NVARCHAR(8)
DECLARE @SHDATE NVARCHAR(max)



IF @YY < 1000 SET @YY += 2000

IF (@Format IS NULL) OR NOT LEN(@Format)>0 SET @Format = "ChandShanbe Rooz MaahHarfi Saal"

SET @YY -= 622

IF @YY % 4 = 3 and @yy > 1371 SET @dd = 12

SET @DD += DATEPART(DY,@intDate) - 1

WHILE 1 = 1
BEGIN

 SET @DDCNT =
    CASE
        WHEN @MM < 7 THEN 31
        WHEN @YY % 4 < 3 and @MM=12 and @YY > 1370 THEN 29
        WHEN @YY % 4 <> 2 and @MM=12 and @YY < 1375 THEN 29
        ELSE 30
    END
    IF @DD > @DDCNT
    BEGIN
        SET @DD -= @DDCNT
        SET @MM += 1
        SET @YYDD += @DDCNT
    END
    IF @MM > 12
    BEGIN
        SET @MM = 1
        SET @YY += 1
        SET @YYDD = 0
    END
    IF @MM < 7 AND @DD < 32 BREAK
    IF @MM BETWEEN 7 AND 11 AND @DD < 31 BREAK
    IF @MM = 12 AND @YY % 4 < 3 AND @YY > 1370 AND @DD < 30 BREAK
    IF @MM = 12 AND @YY % 4 <> 2 AND @YY < 1375 AND @DD < 30 BREAK
    IF @MM = 12 AND @YY % 4 = 2 AND @YY < 1371 AND @DD < 31 BREAK
    IF @MM = 12 AND @YY % 4 = 3 AND @YY > 1371 AND @DD < 31 BREAK

END

 SET @YYDD += @DD

SET @SHMM =
    CASE
        WHEN @MM=1 THEN N"فروردین"
        WHEN @MM=2 THEN N"اردیبهشت"
        WHEN @MM=3 THEN N"خرداد"
        WHEN @MM=4 THEN N"تیر"
        WHEN @MM=5 THEN N"مرداد"
        WHEN @MM=6 THEN N"شهریور"
        WHEN @MM=7 THEN N"مهر"
        WHEN @MM=8 THEN N"آبان"
        WHEN @MM=9 THEN N"آذر"
        WHEN @MM=10 THEN N"دی"
        WHEN @MM=11 THEN N"بهمن"
        WHEN @MM=12 THEN N"اسفند"
    END
   

set @SHDD=
    CASE
        WHEN DATEPART(dw,@intdate)=7 THEN N"شنبه"
        WHEN DATEPART(dw,@intdate)=1 THEN N"یکشنبه"
        WHEN DATEPART(dw,@intdate)=2 THEN N"دوشنبه"
        WHEN DATEPART(dw,@intdate)=3 THEN N"سه شنبه"
        WHEN DATEPART(dw,@intdate)=4 THEN N"چهارشنبه"
        WHEN DATEPART(dw,@intdate)=5 THEN N"پنجشنبه"
        WHEN DATEPART(dw,@intdate)=6 THEN N"جمعه"
    END
SET @DDCNT=
    CASE
        WHEN @SHDD=N"شنبه" THEN 1
        WHEN @SHDD=N"یکشنبه" THEN 2
        WHEN @SHDD=N"دوشنبه" THEN 3
        WHEN @SHDD=N"سه شنبه" THEN 4
        WHEN @SHDD=N"چهارشنبه" THEN 5
        WHEN @SHDD=N"پنجشنبه" THEN 6
        WHEN @SHDD=N"جمعه" THEN 7
    END


SET @SHDATE =
 REPLACE(
 REPLACE(
 REPLACE(
 REPLACE(
 REPLACE(
 REPLACE(
 REPLACE(
 REPLACE(
 REPLACE(
 REPLACE(
 REPLACE(@Format,"MaahHarfi",@SHMM),"SaalRooz",LTRIM(STR(@YYDD,3))),"ChandShanbeAdadi",@DDCNT),"ChandShanbe",
         @SHDD),"Rooz2",REPLACE(STR(@DD,2), " ", "0")),"Maah2",REPLACE(STR(@MM, 2), " ", "0")),"Saal2",
         SUBSTRING(STR(@YY,4),3,2)),"Saal4",STR(@YY,4)),"Saal",LTRIM(STR(@YY,4))),"Maah",
         LTRIM(STR(@MM,2))),"Rooz",LTRIM(STR(@DD,2)))
/* Format Samples:
Format="ChandShanbe Rooz MaahHarfi Saal" -> پنجشنبه 17 اردیبهشت 1394
Format="Rooz MaahHarfi Saal" -> ـ 17 اردیبهشت 1394
Format="Rooz/Maah/Saal" -> 1394/2/17
Format="Rooz2/Maah2/Saal2" -> 94/02/17
Format="Rooz روز گذشته از MaahHarfi در سال Saal2" -> ـ 17 روز گذشته از اردیبهشت در سال 94
*/

RETURN @SHDATE
END



نوشته شده توسط mir asghar mehdizadeh 94/8/19:: 4:25 عصر     |     () نظر