it-swarm.dev

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

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

مثال: 25/jun/2013.

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

56
Krish KvR

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

SELECT replace(convert(NVARCHAR, getdate(), 106), ' ', '/')
61
Jonathan Lonowski

توجد بالفعل إجابات متعددة وأنواع تنسيق لخادم 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')

بعض تنسيقات تاريخ العينة:

 enter image description here

إذا كنت تريد المزيد من تنسيقات تاريخ خادم SQL ، فيجب عليك زيارة:

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

يمكننا تحويل التاريخ إلى العديد من الأشكال مثل

SELECT convert(varchar, getdate(), 106)

هذا يعود dd mon yyyy

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

30
Nithesh

توفر الإجابة المقبولة بالفعل الحل الأفضل باستخدام أساليب التنسيق المضمنة في عام 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 ونمط التنسيق والثقافة لمحاكاة ذلك.

9
Martin Smith

حاول استخدام الاستعلام أدناه.

SELECT REPLACE(CONVERT(VARCHAR(11),GETDATE(),6), ' ','/');  

النتيجة: 20/Jun/13

SELECT REPLACE(CONVERT(VARCHAR(11),GETDATE(),106), ' ','/');  

النتيجة: 20/Jun/2013

8
Praveen

جرب هذا :

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

جرب هذا

select convert(varchar,getdate(),100)

المعلمة الثالثة هي التنسيق ، النطاق من 100 إلى 114 ، أي شخص يجب أن يعمل من أجلك.

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

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

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

1
Chethan

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

'yyyy-mm-dd'

0
IteratioN7T