GETDATE () вставить с пробелами SQL Сервер - PullRequest
0 голосов
/ 02 мая 2020

У меня есть три таблицы в базе данных. У меня есть столбец Operation_Date во всех из них. Я установил для столбца значение по умолчанию (GETDATE()), а его тип данных - VARCHAR(50), и в моем приложении C# Windows нет кода, который вставляет значение в Operation_Date.

Проблема: когда я вставляю строки в таблицы, operation_Date разделяет месяц, день и год с таким пробелом (2 мая 2020 г.). Я получаю два пробела за месяц и один пробел за дни.

Я попытался сделать запрос на сервере SQL для вставки, и возникла та же проблема. Я попытался изменить тип данных на дату и время, но безуспешно.

Примечание. Эта проблема возникает только в двух таблицах. И я почти уверен, что три таблицы имеют одинаковые настройки.

В любом случае можно ли принудительно установить определенный формат даты для значения по умолчанию в SQL Server? И что может сделать эту проблему?

Я использовал этот запрос:

USE [EasyManagementSystem]

INSERT INTO [dbo].[Attendance] ([Employee_No], [Present], [Leave], [Othe_Leave], [Month], [Year])
VALUES ('l-8068', 30, 0, 0, 'MAY', 2020)

1 Ответ

2 голосов
/ 02 мая 2020

А? Зачем вам хранить дату в виде строки? Это просто неправильно. Существует идеальный тип данных для дат, который называется date.

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

create attendance (
    . . .
    operation_date date default getdate()
);

Вуаля! Это будет просто работать. Если вам нужен месяц или год, вы можете использовать функции month() и year().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...