2013-10-03 4 views
0

Я действительно новичок во всем, что связано с Oracle, и мне был дан этот запрос;Oracle Select с датой и форматом

...BETWEEN TO_DATE('" + shortStartDate + "','MMDDYYYY') 
    AND TO_DATE('" + shortEndDate + "','MMDDYYYY')" 

shortStartDate и shortEndDate финики, введенные в формате какой бы части мира вы занимаете.

Однако, глядя на строку, мне кажется, что она ожидает, что формат MMDDYYYY - это правильно? Или он преобразует дату в MMDDYYYY?

Как я могу переписать это как независимое от региона?

ответ

1

Grabbed from here:

Синтаксис для функции TO_DATE является:

TO_DATE (строка1, [format_mask], [NLS_LANGUAGE]) строка1 это строка, которая будет преобразована в дату.

format_mask не является обязательным. Это формат, который будет использоваться для преобразования string1 в дату.

Примеры:

TO_DATE('20020315', 'yyyymmdd') 

возвратит значение даты 15 марта, 2002

TO_DATE('" + shortStartDate + "','MMDDYYYY') 

возвратит значение даты Мар 15, 2002, если shortStartDate =»03152002'

Чтобы отформатировать дату на C#, вы просто используете ToString, как

DateTime.Now.ToString("mmddyyyy"); 
+0

Значит ли это, что если моя строка1 была в формате dd/mm/yyyy, то результирующий запрос будет преобразован в формат mmddyyyy? – griegs

+0

нет объекта даты, который вы передаете функции TO_DATE, использует формат MMDDYYYY для преобразования строки в объект даты. Поэтому он ожидает, что строка будет представлять дату именно в этом формате. Если вы прочтете связанную статью, она даст вам несколько примеров ... TO_DATE ('20020315', 'yyyymmdd') \t вернет значение даты от 15 марта 2002 г. – MichaC

+0

О да, я понимаю. Итак, как я буду интернационализировать это, чтобы его можно было использовать как в Штатах, так и в Европе и Австралии? – griegs

Смежные вопросы