ما هو ما يعادل كيو من string.Format ( "{0: ق}"، DateTime.Now)؟

StackOverflow https://stackoverflow.com/questions/680086

  •  22-08-2019
  •  | 
  •  

سؤال

وما يعادل للفرز VARCHAR التاريخ والوقت / الطابع الزمني في كيو؟

Console.WriteLine("{0:s}", DateTime.Now);

وشكل عينة الإخراج:

2000-05-04T15:30:59

وهذا يعمل، SELECT حاليا :: VARCHAR، خرج هو '2009-03-25'، ولكن فقط لنوع التاريخ، ويتساءل ما هو المعادل لالطابع الزمني.

ملحوظة، وأنا أعلم التاريخ للفرز في حد ذاته، أنا فقط واجهت عدم التوافق بين التاريخ والوقت. NET و مونو، ولذا فإنني سوف النقل فقط أنواع (الاتصال عن بعد) / التاريخ الطابع الزمني كما VARCHAR، الكامنة وراء نوع قاعدة البيانات لا يزال التاريخ الصحيح / الطابع الزمني نوع الحقل. بالنسبة لأولئك الذين يواجهون نفس المشكلة، والعمل في جميع أنحاء هو يلقي التاريخ إلى VARCHAR عند استرداد البيانات، وصب VARCHAR إلى تاريخ عند الحفظ.

هل كانت مفيدة؟

المحلول

وأساسا كنت مجرد استخدام TO_CHAR وظيفة.

والمشكلة مع المثال الخاص بك، هو أنه في حين نظريا هذا يجب أن تعمل:

select to_char( now(), 'YYYY-MM-DDTHH24:MI:SS' );

في الحقيقة - كيو لا يمكن أن "يفهم" أن تي هو الفاصل وHH24 بجوار "سمة"، ويطبع على النحو التالي:

2009-03-24THH24:32:45

ولكن يمكنك تغييره نسبيا ببساطة إلى:

select translate( to_char( now(), 'YYYY-MM-DD HH24:MI:SS' ), ' ', 'T' );

والذي النواتج التنسيق المطلوب:

2009-03-24T21:33:21

وبالطبع نتذكر دائما لاستخدام ترجمة يحصل من العمر بسرعة جدا، وذلك بدلا يمكنك إنشاء وظيفة الخاصة بك واستخدامها بدلا من ذلك:

create function custom_ts(timestamptz) returns text as $$
  select translate( to_char( $1, 'YYYY-MM-DD HH24:MI:SS' ), ' ', 'T' );
$$ language sql;
# select custom_ts(now());
      custom_ts
---------------------
 2009-03-24T21:35:47
(1 row)

نصائح أخرى

وأو ببساطة:

SELECT TO_CHAR(CURRENT_TIMESTAMP, 'YYYY-MM-DD"T"HH24:MI:SS');
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top