Manish Dalwadi Ответов: 10

вставить дату в sql server в формате "ДД-ММ-гггг"


я вставляю дату и она вставляется в формате "гггг-ММ-ДД"
но я хочу вставить как формат "ДД-ММ-гггг"
пожалуйста, скажите мне простое кодирование для
как вставить дату в sql server в формате "ДД-ММ-гггг"

Kornfeld Eliyahu Peter

О! Это больно! Вы на самом деле предлагаете использовать строку для хранения значения даты, просто из-за проблемы визуального форматирования! Почему?! Какая тут связь?!

10 Ответов

Рейтинг:
82

Kornfeld Eliyahu Peter

SQL date-это двоичное поле (хранит двоичное значение независимо от форматирования).
Таким образом, вы не храните дату в SQL в любом формате - только отображает его в нужном формате в вашем приложении.
вы можете использовать это на уровне SQL - http://technet.microsoft.com/en-us/library/hh213505.aspx[^]
или ты -- современный снайпер, как это внутри приложения
http://msdn.microsoft.com/en-us/library/8kb3ddd4(v=против 110).aspx[^]


Рейтинг:
71

Pete O'Hanlon

Не вставляйте дату в определенный формат. Даты должны храниться с использованием соответствующих типов даты/времени, и они должны храниться в универсальном формате. Это распространенное заблуждение, что вы должны хранить даты в определенном формате - это плохая практика, чтобы попасть в нее. Какая дата была 10/11/2013? Это было 10 ноября 2013 года или 11 октября 2013 года? Сохраняя дату в универсальном формате, вы устраняете двусмысленность, а затем выполняете работу по форматированию даты в том месте, где она должна быть выполнена - в пользовательском интерфейсе после ее извлечения, где ее можно заставить следовать локальным соглашениям о дате и времени.


Рейтинг:
68

CPallini

Если вы не вставляете его в виде строки (varchar & friends), то дата будет не отформатирован, то есть внутреннее представление не имеет понятия "формат".
Вероятно, вы выполняете неправильное преобразование либо из строки в дату, либо из даты в строку в своем коде.


Рейтинг:
54

Dnyaneshwar@Pune

Конвертировать(дата, @дата, 105)

Используйте это выражение для преобразования даты перед вставкой.


Ankur\m/

Чем он отличается от моего ответа? Какой смысл снова публиковать один и тот же ответ?

Рейтинг:
47

Karthik_Mahalingam

DateTime dt = DateTime.Now;
        string format = "dd-mm-yyyy";
        string dtTObeInsertedInSQL = dt.ToString(format);


Kornfeld Eliyahu Peter

И - это все еще двоичный код в SQL (это дата)!!!

Рейтинг:
36

Ankur\m/

Этот формат по умолчанию не поддерживается для поля даты insert in SQL Server. Для этого вам нужно будет использовать CONVERT

INSERT INTO TableName (DateColumn) VALUES (CONVERT(date, '13-02-2014', 105))

105 относится к стилю. Проверьте это для получения более подробной информации - Приведение и преобразование (Transact-SQL)[^]

Надеюсь, это поможет!


Ankur\m/

Тот, кто здесь голосует против, не могли бы вы, пожалуйста, назвать причину этого голосования?

Manish Dalwadi

"@дата" параметр моей хранимой процедуры и "Добролюбов" находится в поле моего стола
и я попробовал это сделать, но показал мне ошибку.

Вставить в дату рождения (Дата рождения) значений (преобразование(@Добролюбов, 'ДД-ММ-гггг', 13));

я знаю, что ошибаюсь...
для меня это в первый раз...
сэр, так что, пожалуйста, избегайте моих ошибок

Ankur\m/

Так и должно быть:
Вставить в значения даты рождения (dob) (преобразовать(дата, @dob, 13));

Просто подтвердите стиль нет.

Manish Dalwadi

я использую его как
Вставить в значения даты рождения (dob) (преобразовать(дата, @dob, 13));
..
запрос завершен, но дата вставляется как
1990-02-02

и я хочу, чтобы это было 02-02-1990.
.
пожалуйста помогите

Рейтинг:
33

King Fisher

Формат


Рейтинг:
20

Abhinav S

CONVERT - Функция SQL Server CONVERT() [^].


Рейтинг:
2

Rahulmishra011

CONVERT(VARCHAR(8), GETDATE(), 105)


Maciej Los

На несколько лет позже...
Если вы хотите избежать отрицательных голосов, вы не должны публиковать ответ на такой старый (и решенный) вопрос.

Рейтинг:
13

K.Y.S.Phaneendra

попробовать это


ВЫБЕРИТЕ КОНВЕРТИРОВАТЬ(VARCHAR(10),GETDATE(),103)


Изменяя последнее число, вы можете получить различные форматы дат..