Задать вопрос
@krka92

Почему MS SQL по разному форматирует даты?

MS SQL Server 2014
Есть таблица, в которой записаны некоторые даты в формате:
2017-11-01
Есть некоторый код, с помощью которого я делаю выборку данных (в т. ч. и этих дат).
Вопрос вот в чем: если я выполняю код на той же машине где и установлен SQL сервер, то даты мне приходят в формате:
01.11.2017
То есть преобразуются.
А если выполню код на другой машине, то даты приходят в исходном формате, то есть
2017-11-01
Код простой. Такой пример:
FSQL := 'select f.sdu as StartDate from tableName f';
with Connect.SQLSelect(FSQL) do 
begin
  FLD_DS := Fields.FieldByName('StartDate');
  while not eof do
  begin
    //Операторы
    Next;
  end;
end;
  • Вопрос задан
  • 865 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 1
@auoa16
Если нужно получать в едином формате, просто передавайте формат culture(третий) в format, например для формата 01.11.2017 вот так: SELECT FORMAT( GETDATE(), 'd', 'ru-RU');
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Radjah
@Radjah
Я в своё время делал примерно так:
FLD_DS := Fields.FieldByName('StartDate').AsDateTime

А дальше разбирал уже средствами языка.

В самой базе тип поля был "datetime"
Ответ написан
@zhaar
А еще можно принудительно задавать локаль в запросе. В свое время было удобно переключиться на локаль RU при формировании HTML-файлов с понятными датами, а потом обратно переключаться на английскую.
Ответ написан
Комментировать
tsklab
@tsklab Куратор тега SQL Server
Здесь отвечаю на вопросы.
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы