У меня есть DateTime(null)
столбец как StartDate
в одной из моих табличных схем. Клиенты уже ввели много данных в свою таблицу на основе этого. Теперь они хотят, чтобы эта колонка имела тип Character(10)
Можно ли это сделать? Разве это не повредит данные, которые они уже ввели? Что такое безопасный способ сделать это?Изменение типа данных столбца в SQL
1
A
ответ
2
SELECT StartDate, CONVERT(CHAR, StartDate, 10) AS NEWOUTPUT
FROM yourtable
Если результаты колонки NEWOUTPUT отлично затем идти вперед с ..
alter table yourtable alter column StartDate char(10) not null;
1
Прямое изменение может привести к неприятностям. Вы должны были бы
- Создать новый столбец
- Обновить таблицу так, что новый столбец заполнен
YEAR(datecolname) + '-' + MONTH(datecolname) + '-' + DAY(datecolname)
. - Удалить старую колонку
- Переименуйте новый столбец старого имени
- воссоздавать индексы
Одна вещь, хотя в том, что поиски конкретных дат, вероятно, будет медленнее, в любом случае, если вы используете символ вместо datetime и конкретных операторов sql, таких как «между», больше не будет работать.
Если это так, как вы упомянули в комментарии, потому что они не хотят вводить день, то, вероятно, лучше изменить, как им нужно вводить даты, чтобы день по умолчанию был установлен на 1. Но зависит от рассматриваемого приложения.
Смежные вопросы
- 1. Изменение типа данных столбца в SQL Server
- 2. Изменение типа данных столбца в SQL Server
- 3. Изменение типа данных столбца
- 4. Изменение типа данных столбца
- 5. Изменение типа данных столбца таблицы
- 6. Изменение типа столбца кадра данных
- 7. Изменение типа данных столбца в PostgreSQL 9.1
- 8. Изменение типа столбца без потери данных
- 9. Безопасное изменение типа данных реплицированного столбца в SQL Server 2005?
- 10. Изменение типа данных столбца в SQL - пустые поля
- 11. Изменение типа данных столбца таблицы в SQL Server 2008
- 12. Изменение типа данных «varchar» столбца на «DATE» в SQL/ORACLE
- 13. Безопасное изменение типа данных столбца в SQL Azure
- 14. Изменение типа данных столбца, чтобы удвоить
- 15. Изменение типа данных столбца в Oracle
- 16. SQL - Informix - Изменение типа данных столбца от числа до символа
- 17. Изменение типа столбца после ввода данных
- 18. Изменение типа столбца данными без удаления данных
- 19. Изменение типа данных значения столбца (даты)
- 20. Изменение типа данных столбца изменяет поведение запроса
- 21. Изменение типа данных столбца во всех таблицах
- 22. MS Access SQL, изменение типа данных
- 23. Изменение столбца в SQL
- 24. Изменение типа данных столбца mySQL из текста в timestamp
- 25. Изменение типа данных столбца без повреждения данных в таблице
- 26. PostgreSQL: изменение столбца типа перечислений
- 27. Изменение свойств столбца в SQL
- 28. SQL Server: проверка типа данных столбца
- 29. Редактирование типа данных столбца SQL Server
- 30. Изменение столбца типа данных из текста в Integer в PostgreSQL
Что такое 'Character (10)'? – Amit
вы можете играть, вставляя в другую таблицу. Я имею в виду одну временную таблицу, а затем, делая бросок, мы можем добиться этого. – pedram
Создайте новый столбец, заполните его необходимыми данными (на основе исходных данных столбца, используя, например, инструкцию 'UPDATE'), удалите старый столбец, переименуйте новый столбец. Может возникнуть проблема из-за различного упорядочения столбцов, если кто-нибудь запросит его, используя '*'. –