microsoft - sql server management studio 2012



تحويل تنسيق التاريخ إلى تنسيق DD/MMM/YYYY في SQL Server (6)

لدي استعلام في SQL ، لا بد لي من الحصول على التاريخ في شكل dd/mmm/yy

مثال: 25/jun/2013 .

كيف يمكنني تحويله لخادم SQL؟


Answer #1

أي شخص يحاول إدخال التاريخ يدويًا إلى متغير نوع تاريخ خادم SQL يستخدم هذا التنسيق أثناء إدخال:

'yyyy-mm-dd'


Answer #2

توجد بالفعل عدة إجابات وأنواع تنسيق لخادم SQL 2008. ولكن هذه الطريقة غامضة بعض الشيء وسيكون من الصعب عليك تذكر الرقم فيما يتعلق بتنسيق التاريخ المحدد. هذا هو السبب في الإصدارات القادمة من خادم SQL هناك خيار أفضل.

إذا كنت تستخدم SQL Server 2012 أو الإصدارات الأحدث ، فيجب استخدام الدالة Format ()

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 ، فيجب عليك زيارة:

  1. تنسيق التاريخ والوقت المخصص
  2. تنسيق التاريخ والوقت القياسي

Answer #3

جرب هذا :

select replace ( convert(varchar,getdate(),106),' ','/')

Answer #4

جرب هذا

select convert(varchar,getdate(),100)

المعلمة الثالثة هي الشكل ، النطاق من 100 إلى 114 ، أي واحد يجب أن يعمل من أجلك.

إذا كنت بحاجة إلى تاريخ في dd/mmm/yyyy استخدم هذا:

replace(convert(char(11),getdate(),113),' ','-')

استبدل getdate() باسم العمود الخاص بك. هذا العمل بالنسبة لي.


Answer #5

لست متأكدًا من وجود تطابق تام للتنسيق الذي تريده. ولكن يمكنك الحصول على وثيقة مع convert() وأسلوب 106 . ثم ، استبدال المسافات:

SELECT replace(convert(NVARCHAR, getdate(), 106), ' ', '/')

Answer #6

يمكننا تحويل التاريخ الى صيغ كثيرة مثل

SELECT convert(varchar, getdate(), 106)

هذا يعود dd mon yyyy

المزيد هنا قد يساعدك هذا





sql-server-2012