Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Проблема отображения даты  [new]
1
Guest
Добрый день.

Microsoft SQL Server 2005 - 9.00.3152.00 (Intel X86) Mar 3 2007 03:17:37 Copyright (c) 1988-2005 Microsoft Corporation Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 2)

Делаю так
set dateformat dmy
declare @D datetime
set @d=getdate()
select cast(@d as varchar(20))
получаю сен 9 2009 3:48PM
9 сен 09, 16:50    [7638240]     Ответить | Цитировать Сообщить модератору
 Re: Проблема отображения даты  [new]
1
Guest
А почему не 9 сен 2009 3:48PM
9 сен 09, 16:51    [7638243]     Ответить | Цитировать Сообщить модератору
 Re: Проблема отображения даты  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36814
Потому что надо пользоваться функцией covert.
9 сен 09, 16:53    [7638254]     Ответить | Цитировать Сообщить модератору
 Re: Проблема отображения даты  [new]
1
Guest
Спасибо, добрый человек.
Про Convert я и сам знаю. Меня интересует - почему не работает set dateformat dmy?
9 сен 09, 16:55    [7638272]     Ответить | Цитировать Сообщить модератору
 Re: Проблема отображения даты  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36814
1
Спасибо, добрый человек.
Про Convert я и сам знаю. Меня интересует - почему не работает set dateformat dmy?
А с чего вы взяли, что он не работает?
9 сен 09, 16:56    [7638279]     Ответить | Цитировать Сообщить модератору
 Re: Проблема отображения даты  [new]
1
Guest
Дык
А какой вывод я должен увидеть, при такой установке DATEFORMAT?
9 сен 09, 16:57    [7638291]     Ответить | Цитировать Сообщить модератору
 Re: Проблема отображения даты  [new]
Konst_One
Member

Откуда:
Сообщений: 11514
Sets the order of the month, day, and year date parts for interpreting date, smalldatetime, datetime, datetime2 and datetimeoffset character strings.


example:

-- Set date format to day/month/year.
SET DATEFORMAT dmy;
GO
DECLARE @datevar datetime2 = '31/12/2008 09:01:01.1234567';
SELECT @datevar;
GO
-- Result: 2008-12-31 09:01:01.123
SET DATEFORMAT dmy;
GO
DECLARE @datevar datetime2 = '12/31/2008 09:01:01.1234567';
SELECT @datevar;
GO
-- Result: Msg 241: Conversion failed when converting date and/or time -- from character string.

GO

вот и подумайте , что он действительно делает
9 сен 09, 16:58    [7638298]     Ответить | Цитировать Сообщить модератору
 Re: Проблема отображения даты  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36814
1
Дык
А какой вывод я должен увидеть, при такой установке DATEFORMAT?
Такой, какой видите. Если бы вы потрудились залезть в бол и почитать, то вы бы выяснили, что dateformat не влияет на преобразование даты в строку.
9 сен 09, 16:59    [7638308]     Ответить | Цитировать Сообщить модератору
 Re: Проблема отображения даты  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
1
select cast(@d as varchar(20))
А почему нельзя выбирать дату/время как дату/время?
Зачем вообще в varchar превращать?
9 сен 09, 17:01    [7638324]     Ответить | Цитировать Сообщить модератору
 Re: Проблема отображения даты  [new]
1
Guest
Konst_One
1) Это для какого сервера?
2) Пример не работает.
3)Это я в хранимой процедуре должен написать 'GO'?
9 сен 09, 17:03    [7638333]     Ответить | Цитировать Сообщить модератору
 Re: Проблема отображения даты  [new]
1
Guest
А если так
set dateformat dmy
declare @D datetime
set @d=getdate()
select @d

то 2009-09-09 16:03:40.647

На что влияет set dateformat?
9 сен 09, 17:05    [7638343]     Ответить | Цитировать Сообщить модератору
 Re: Проблема отображения даты  [new]
Konst_One
Member

Откуда:
Сообщений: 11514
это выдержка из BOL
9 сен 09, 17:05    [7638346]     Ответить | Цитировать Сообщить модератору
 Re: Проблема отображения даты  [new]
1
Guest
Для какого сервера?
9 сен 09, 17:06    [7638351]     Ответить | Цитировать Сообщить модератору
 Re: Проблема отображения даты  [new]
Glory
Member

Откуда:
Сообщений: 104760
1
А если так
set dateformat dmy
declare @D datetime
set @d=getdate()
select @d

то 2009-09-09 16:03:40.647

На что влияет set dateformat?

Открываем хелп и читаем

This setting is used only in the interpretation of character strings as they are converted to date values. It does not affect the display of date values.

Разве это было трудно сразу сделать ?
9 сен 09, 17:06    [7638358]     Ответить | Цитировать Сообщить модератору
 Re: Проблема отображения даты  [new]
Konst_One
Member

Откуда:
Сообщений: 11514
SQL Server 2008 Books Online , но там ничего и не менялось
9 сен 09, 17:08    [7638367]     Ответить | Цитировать Сообщить модератору
 Re: Проблема отображения даты  [new]
1
Guest
Меняю вопрос - как задать, по умолчанию, формат отображения даты?
9 сен 09, 17:08    [7638368]     Ответить | Цитировать Сообщить модератору
 Re: Проблема отображения даты  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36814
1
1) Это для какого сервера?

Рискну предположить, что для любого, начиная с 2000го.
1
2) Пример не работает.

А у меня работает, как написано. Что я делаю не так?
1
3)Это я в хранимой процедуре должен написать 'GO'?
Про go тоже можно прочитать в BOL. Для чего он нужен и где его надо писать, а где не надо.
1
На что влияет set dateformat?

Чукча не читатель, чукча писатель?

Сообщение было отредактировано: 9 сен 09, 17:11
9 сен 09, 17:08    [7638372]     Ответить | Цитировать Сообщить модератору
 Re: Проблема отображения даты  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
отображением даты занимается клиент, на нем делайте что хотите ...
-------------------------------------
Jedem Das Seine
9 сен 09, 17:08    [7638376]     Ответить | Цитировать Сообщить модератору
 Re: Проблема отображения даты  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36814
1
Меняю вопрос - как задать, по умолчанию, формат отображения даты?
Формат отображения даты задается в клиентском приложении.
9 сен 09, 17:09    [7638380]     Ответить | Цитировать Сообщить модератору
 Re: Проблема отображения даты  [new]
1
Guest
Konst_One
Ну да ничего, кроме появления типа datetime2 и синтаксиса.
9 сен 09, 17:09    [7638381]     Ответить | Цитировать Сообщить модератору
 Re: Проблема отображения даты  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
1,

так вам же и ответили что ето для 2008
9 сен 09, 17:10    [7638393]     Ответить | Цитировать Сообщить модератору
 Re: Проблема отображения даты  [new]
Konst_One
Member

Откуда:
Сообщений: 11514
1
Konst_One
Ну да ничего, кроме появления типа datetime2 и синтаксиса.


сути не меняет
9 сен 09, 17:10    [7638395]     Ответить | Цитировать Сообщить модератору
 Re: Проблема отображения даты  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Автор, а почему Вы не отвечаете на мой вопрос?
9 сен 09, 17:11    [7638400]     Ответить | Цитировать Сообщить модератору
 Re: Проблема отображения даты  [new]
1
Guest
Maxx
Ну да клиент. Но только в силу ряда причин - сервер возвращает дату в виде символьной строки - было такое требование и формат даты указан не был. Написали кучу хранимок. Теперь или их править или задать формат отображения/преобразования даты. Кроме того - клиент не гарантирует, что формат отображения будет только один.
9 сен 09, 17:14    [7638419]     Ответить | Цитировать Сообщить модератору
 Re: Проблема отображения даты  [new]
1
Guest
Паганель
Я уже ответил.
9 сен 09, 17:16    [7638428]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить