ستريك البيانات SQL أنماط وقت التاريخ

هناك العديد من السيناريوهات الشائعة لاستخدام وقت التاريخ في Databricks SQL:

  • تستخدم مصادر بيانات CSV و JSON سلسلة النقش لتحليل وتنسيق محتوى وقت التاريخ.
  • دالات وقت التاريخ المتعلقة بالتحويل STRING من وإلى DATE أو TIMESTAMP . على سبيل المثال، unix_timestamp ، ، ، ، ، ، ، ، date_format ، to_unix_timestampfrom_unixtimeto_dateto_timestampfrom_utc_timestampto_utc_timestamp .

يستخدم SQL Databricks أحرف النقش في الجدول التالي لتحليل التاريخ و الطابع الزمني والتنسيق:

الرمز المعنى تقديم أمثلة
G عصر نص إعلان; أنو دومينيك
y سنة سنة 2020; 20
D يوم من السنة رقم(3) 189
م/ل شهر من السنة شهر 7; 07; جول; يوليو
d يوم من الشهر رقم(3) 28
س/ س ربع السنة رقم/نص 3; 03; س3؛ الربع الثالث
E يوم من الأسبوع نص الثلاثاء; الثلاثاء
F يوم من الأسبوع في الشهر رقم(1) 3
a صباحا بعد الظهر من اليوم صباحا بعد الظهر مدير مشروعات
h ساعة الساعة من الساعة صباحا (1-12) رقم(2) 12
K ساعة من الساعة صباحا (0-11) رقم(2) 0
k ساعة في اليوم (1-24) رقم(2) 0
H ساعة من اليوم (0-23) رقم(2) 0
m دقيقة من الساعة رقم(2) 30
s ثانية من الدقيقة رقم(2) 55
S جزء من الثانية جزء 978
V معرف المنطقة الزمنية معرف المنطقة أمريكا/Los_Angeles؛ Z; -08:30
z اسم المنطقة الزمنية اسم المنطقة توقيت المحيط الهادئ القياسي؛ الباسيفيكي
O إزاحة المنطقة المترجمة الأوتإزاح-O توقيت غرينتش +8؛ توقيت غرينتش +08:00; UTC-08:00;
X إزاحة المنطقة 'Z' للصفر إزاحة-X Z; -08; -0830; -08:30; -083015; -08:30:15;
x إزاحة المنطقة إزاحة-x +0000; -08; -0830; -08:30; -083015; -08:30:15;
Z إزاحة المنطقة إزاحة-Z +0000; -0800; -08:00;
الهروب للنص المحدِّد
‘’ اقتباس واحد حرفي
[ بدء تشغيل المقطع الاختياري
] نهاية المقطع الاختياري

يحدد عدد أحرف النقش التنسيق.

  • النص: يتم تحديد نمط النص استنادا إلى عدد أحرف النقش المستخدمة. أقل من 4 أحرف نمط سوف تستخدم نموذج النص القصير، عادة اختصار، على سبيل المثال يوم من الأسبوع الاثنين قد إخراج "الاثنين". بالضبط 4 نمط الحروف سوف تستخدم نموذج النص الكامل ، وعادة ما وصف كامل ، على سبيل المثال ، يوم من أيام الأسبوع الاثنين قد إخراج "الاثنين". ستفشل 5 أحرف أو أكثر.

  • Number(n): يمثل n هنا الحد الأقصى لعدد الحروف التي يمكن استخدام هذا النوع من نمط التاريخ. إذا كان عدد الحروف واحد، ثم القيمة الإخراج باستخدام الحد الأدنى لعدد الأرقام وبدون الحشو. وإلا، يتم استخدام عدد الأرقام كعرض حقل الإخراج، مع القيمة صفر مبطن حسب الضرورة.

  • رقم/نص: إذا كان عدد أحرف النقش 3 أو أكثر، استخدم قواعد النص أعلاه. وإلا استخدم قواعد الرقم أعلاه.

  • الكسر: استخدم حرفا واحدا أو أكثر (حتى 9) 'S' أحرف متجاورة، على سبيل المثال، SSSSSS تحليل جزء من الثانية وتنسيقه. لتحليل، يمكن أن يكون طول الكسر المقبول [1، عدد 'S'] المتجاورة. للتنسيق، سيتم إضافة طول الكسر إلى عدد "S" المتجاورة مع الأصفار. تدعم SQL Databricks وقت التاريخ للدقة الدقيقة من الثانية ، والتي تحتوي على ما يصل إلى 6 أرقام كبيرة ، ولكن يمكنها تحليل نانو الثانية مع اقتطاع الجزء الذي تم تجاوزه.

  • السنة: يحدد عدد الحروف الحد الأدنى لعرض الحقل الذي يتم استخدام الحشوة أسفله. إذا كان عدد الأحرف اثنين، ثم يتم استخدام نموذج رقميين مخفضة. للطباعة، يؤدي هذا إلى إخراج الرقمين الموجودين في أقصى اليمين. لتحليل، سيتم تحليل هذا باستخدام القيمة الأساسية لعام 2000، مما يؤدي إلى سنة ضمن النطاق 2000 إلى 2099 شاملة. إذا كان عدد الأحرف أقل من أربعة (ولكن ليس اثنين) ، فإن العلامة هي الإخراج فقط للسنوات السالبة. وإلا، فإن العلامة إخراج إذا تم تجاوز عرض لوحة عند 'G' غير موجود. ستفشل 7 أحرف أو أكثر.

  • الشهر: يتبع قاعدة رقم/نص. يعتمد نموذج النص على الحروف - 'M' يشير إلى النموذج "القياسي"، 'L' وهو نموذج "مستقل". يختلف هذان النموذجان فقط في بعض اللغات المعينة. على سبيل المثال، في الروسية، "Июль" هو شكل مستقل من يوليو، و "Июля" هو النموذج القياسي. فيما يلي أمثلة لكافة أحرف الأنماط المعتمدة:

    • 'M' أو 'L' : شهر في السنة ابتداء من 1. لا يوجد فرق بين 'M' و 'L' . تتم طباعة الشهر من 1 إلى 9 دون الحشو.

      select date_format(date '1970-01-01', "M");
      1
      select date_format(date '1970-12-01', "L");
      12
      
    • 'MM' أو 'LL' : شهر في السنة ابتداء من 1. تتم إضافة صفر الحشو للشهر 1-9.

      select date_format(date '1970-1-01', "LL");
      01
      select date_format(date '1970-09-01', "MM");
      09
      
    • 'MMM'تمثيل نصي قصير في النموذج القياسي. يجب أن يكون نمط الشهر جزءا من نمط التاريخ وليس مجرد شهر مستقل باستثناء الأماكن التي لا يوجد فيها فرق بين الأشكال المستقلة والواث بذاتها كما هو الحال في اللغة الإنجليزية.

      select date_format(date '1970-01-01', "d MMM");
      1 Jan
      select to_csv(named_struct('date', date '1970-01-01'), map('dateFormat', 'dd MMM', 'locale', 'RU'));
      01 янв.
      
    • 'LLL'تمثيل نصي قصير في النموذج المستقل. يجب استخدامه لتنسيق/تحليل أشهر فقط دون أي حقول تاريخ أخرى.

      select date_format(date '1970-01-01', "LLL");
      
      Jan
      
      select to_csv(named_struct('date', date '1970-01-01'), map('dateFormat', 'LLL', 'locale', 'RU'));
      
      янв.
      
    • 'MMMM'تمثيل كامل لشهر نصي في النموذج القياسي. يتم استخدامه لتحليل / تنسيق أشهر كجزء من التواريخ / الطوابع الزمنية.

      select date_format(date '1970-01-01', "d MMMM");
      
      1 January
      
      select to_csv(named_struct('date', date '1970-01-01'), map('dateFormat', 'd MMMM', 'locale', 'RU'));
      
      1 января
      
    • 'LLLL'تمثيل كامل لشهر نصي في النموذج المستقل. يمكن استخدام النمط لتنسيق/ تحليل أشهر فقط.

      select date_format(date '1970-01-01', "LLLL");
      
      January
      
      select to_csv(named_struct('date', date '1970-01-01'), map('dateFormat', 'LLLL', 'locale', 'RU'));
      
      январь
      
  • صباحا بعد الظهر : هذا يخرج صباحا بعد الظهر من اليوم. يجب أن يكون عدد أحرف النمط 1.

  • معرف المنطقة (V): يؤدي هذا إلى إخراج معرف المنطقة الزمنية. يجب أن يكون عدد أحرف النمط 2.

  • أسماء المنطقة(z): هذا إخراج اسم عرض نصي من معرف المنطقة الزمنية. إذا كان عدد الحروف واحد أو اثنين أو ثلاثة، ثم الاسم القصير هو الإخراج. إذا كان عدد الحروف أربعة، ثم الاسم الكامل هو الإخراج. ستفشل خمسة أحرف أو أكثر.

  • إزاحة X و x: هذا تنسيق الإزاحة استنادا إلى عدد أحرف النقش. حرف واحد إخراج ساعة فقط، مثل '+01'، إلا إذا كانت الدقيقة غير صفر في هذه الحالة الدقيقة هو أيضا الإخراج، مثل '+0130'. حرفين إخراج ساعة ودقيقة، دون القولون، مثل '+0130'. ثلاثة أحرف إخراج ساعة ودقيقة، مع القولون، مثل '+01:30'. أربعة أحرف إخراج ساعة ودقيقة والثانية اختياري، دون القولون، مثل '+013015'. خمسة أحرف إخراج الساعة والدقيقة والثانية اختيارية، مع القولون، مثل '+01:30:15'. ستة أو أكثر من الرسائل ستفشل. حرف النمط 'X' (الحالة العليا) سيتم إخراج 'Z' عندما يكون الإزاحة الناتج صفرا، بينما الحرف النمط 'x' (الحالة السفلية) سيتم إخراج '+00'، '+0000'، أو '+00:00'.

  • إزاحة O: هذا تنسيق الإزاحة المترجمة استنادا إلى عدد من أحرف النقش. حرف واحد إخراج النموذج القصير من الإزاحة المترجمة، الذي يتم ترجمة نص الإزاحة، مثل 'GMT'، مع ساعة بدون صفر البادية، اختياري 2-أرقام دقيقة والثانية إذا لم يكن صفر، والقولون، على سبيل المثال 'GMT+8'. إخراج أربعة أحرف النموذج الكامل، الذي يتم ترجمة نص الإزاحة، مثل 'GMT، مع حقل 2-digit ساعة ودقيقة، حقل ثاني اختياري إذا غير صفر، والقولون، على سبيل المثال 'GMT+08:00'. أي عدد آخر من الرسائل سيفشل.

  • إزاحة Z: هذا تنسيق الإزاحة استنادا إلى عدد من أحرف النقش. حرف واحد أو حرفين أو ثلاثة إخراج ساعة ودقيقة، دون القولون، مثل '+0130'. الإخراج هو '+0000' عندما يكون الإزاحة صفرا. إخراج أربعة أحرف النموذج الكامل من الإزاحة المترجمة، أي ما يعادل أربعة أحرف من أوتإزاح-O. الإخراج هو النص المقابل للإزاحة المترجمة إذا كان الإزاحة صفرا. خمسة أحرف إخراج ساعة، دقيقة، مع اختياري الثانية إذا لم يكن صفر، مع القولون. إخراج 'Z' إذا كان الإزاحة صفر. ستة أو أكثر من الرسائل ستفشل.

  • بداية ونهاية المقطع الاختياري: يستخدم [] لتعريف مقطع اختياري وربما متداخل. أثناء التنسيق، يتم إخراج كافة البيانات الصالحة حتى في المقطع الاختياري. أثناء تحليل المقطع بأكمله قد يكون مفقودا من السلسلة موزعة. يتم بدء تشغيل مقطع اختياري [ وانتهاء باستخدام ] (أو في نهاية النقش).

  • رموز 'E' و 'F' و 'q' و 'Q' لا يمكن استخدامها إلا لتنسيق وقت التاريخ، على سبيل date_format المثال. لا يسمح باستخدامها لتحليل وقت التاريخ، على سبيل to_timestamp المثال.