2017-04-18 2 views
0

J'ai la table A et elle a une colonne nommée LastUpdateDate au format datetime. Il garde la date avec des données de temps comme Apr 18 2017 11:15AM. Je veux me débarrasser des données de temps et garder la date au format dd/mm/yyyy.Modifier la colonne datetime en varchar avec les données existantes

Donc je suppose, je modifie la colonne à VARCHAR. Mais j'ai des données existantes. Est-ce que j'obtiens une erreur lorsque je modifie la colonne? Ou y a-t-il une autre option? Que devrais-je faire?

+2

Vous devez modifier à 'date' pas' varchar ' –

+0

SELECT convertir (datetime, 'Apr 18 2017 11:15') – Chanukya

+0

Pourquoi ne pas garder e datetime et juste le sélectionner comme une date lorsque vous récupérez les données? – JohnHC

Répondre

1

Vous devez et non de modifier la colonne à varchar.
Si quoi que ce soit, vous devez modifier à un type de données date:

ALTER TABLE YourTable 
ALTER COLUMN LastUpdateDate DATE 
GO 

Voici un exemple de table avec des données (S'il vous plaît nous sauver cette étape dans vos futures questions):

CREATE TABLE YourTable 
(
    id int identity(1,1), 
    LastUpdateDate datetime 
) 

INSERT INTO YourTable VALUES 
(GETDATE()), 
(DATEADD(DAY, 1, GETDATE())), 
(DATEADD(DAY, 2, GETDATE())), 
(DATEADD(DAY, 3, GETDATE())), 
(DATEADD(DAY, 4, GETDATE())) 

L'instruction alter table:

ALTER TABLE YourTable 
ALTER COLUMN LastUpdateDate DATE 
GO 

test:

SELECT * 
FROM YourTable 

Résultat:

id LastUpdateDate 
1 18.04.2017 00:00:00 
2 19.04.2017 00:00:00 
3 20.04.2017 00:00:00 
4 21.04.2017 00:00:00 
5 22.04.2017 00:00:00 

See a live demo on rextester.

+0

Ceci est travaillé, merci! – asyaben

+0

Content de vous aider :-) –

1

Dans votre requête de sélection convertir la colonne datetime en date courte

SELECT CONVERT(date,datetimecomlum) AS short_date FROM A