لدي استفسار في sql ، لا بد لي من الحصول على التاريخ بتنسيق dd/mmm/yy
مثال: 25/jun/2013
.
كيف يمكنني تحويله لخادم SQL؟
لست متأكدًا من وجود تطابق تام مع التنسيق الذي تريده. ولكن يمكنك الاقتراب من convert()
وأسلوب 106
. ثم ، استبدل المسافات:
SELECT replace(convert(NVARCHAR, getdate(), 106), ' ', '/')
توجد بالفعل إجابات متعددة وأنواع تنسيق لخادم SQL 2008. لكن هذه الطريقة غامضة إلى حد ما وسيكون من الصعب عليك تذكر الرقم فيما يتعلق بتنسيق تاريخ محدد. لهذا السبب في الإصدارات القادمة من خادم SQL هناك خيار أفضل.
FORMAT ( value, format [, culture ] )
باستخدام خيار الثقافة ، يمكنك تحديد التاريخ وفقًا للمشاهدين.
DECLARE @d DATETIME = '10/01/2011';
SELECT FORMAT ( @d, 'd', 'en-US' ) AS 'US English Result'
,FORMAT ( @d, 'd', 'en-gb' ) AS 'Great Britain English Result'
,FORMAT ( @d, 'd', 'de-de' ) AS 'German Result'
,FORMAT ( @d, 'd', 'zh-cn' ) AS 'Simplified Chinese (PRC) Result';
SELECT FORMAT ( @d, 'D', 'en-US' ) AS 'US English Result'
,FORMAT ( @d, 'D', 'en-gb' ) AS 'Great Britain English Result'
,FORMAT ( @d, 'D', 'de-de' ) AS 'German Result'
,FORMAT ( @d, 'D', 'zh-cn' ) AS 'Chinese (Simplified PRC) Result';
US English Result Great Britain English Result German Result Simplified Chinese (PRC) Result
---------------- ----------------------------- ------------- -------------------------------------
10/1/2011 01/10/2011 01.10.2011 2011/10/1
US English Result Great Britain English Result German Result Chinese (Simplified PRC) Result
---------------------------- ----------------------------- ----------------------------- ---------------------------------------
Saturday, October 01, 2011 01 October 2011 Samstag, 1. Oktober 2011 2011年10月1日
بالنسبة لحلول OP ، يمكننا استخدام التنسيق التالي ، الذي سبق ذكره بواسطةMartin Smith:
FORMAT(GETDATE(), 'dd/MMM/yyyy', 'en-us')
بعض تنسيقات تاريخ العينة:
إذا كنت تريد المزيد من تنسيقات تاريخ خادم SQL ، فيجب عليك زيارة:
يمكننا تحويل التاريخ إلى العديد من الأشكال مثل
SELECT convert(varchar, getdate(), 106)
هذا يعود dd mon yyyy
المزيد هنا هذا قد يساعدك
توفر الإجابة المقبولة بالفعل الحل الأفضل باستخدام أساليب التنسيق المضمنة في عام 2008.
تجدر الإشارة إلى أن النتائج التي يتم إرجاعها تعتمد على لغة تسجيل الدخول.
SET language Russian
SELECT replace(CONVERT(NVARCHAR, getdate(), 106), ' ', '/')
عائدات
06/апр/2015
في وقت كتابة هذا التقرير.
بالنسبة للأشخاص الذين يطرحون هذا السؤال على الإصدارات الأحدث من SQL Server ، فإن الطريقة التي تتجنب هذه المشكلة - والحاجة إلى REPLACE
هي
FORMAT(GETDATE(),'dd/MMM/yyyy', 'en-us')
في عام 2005 ، سيكون من الممكن كتابة CLR UDF التي قبلت DateTime ونمط التنسيق والثقافة لمحاكاة ذلك.
حاول استخدام الاستعلام أدناه.
SELECT REPLACE(CONVERT(VARCHAR(11),GETDATE(),6), ' ','/');
النتيجة: 20/Jun/13
SELECT REPLACE(CONVERT(VARCHAR(11),GETDATE(),106), ' ','/');
النتيجة: 20/Jun/2013
جرب هذا :
select replace ( convert(varchar,getdate(),106),' ','/')
جرب هذا
select convert(varchar,getdate(),100)
المعلمة الثالثة هي التنسيق ، النطاق من 100
إلى 114
، أي شخص يجب أن يعمل من أجلك.
إذا كنت بحاجة إلى تاريخ في dd/mmm/yyyy
، فاستخدم هذا:
replace(convert(char(11),getdate(),113),' ','-')
استبدل getdate()
باسم العمود الخاص بك. هذا عملت لي.
أي شخص يحاول إدخال متغيّر التاريخ "إلى نوع التاريخ" الخاص بخادم sql يدويًا ، يستخدم هذا التنسيق أثناء الدخول:
'yyyy-mm-dd'