Ajouter de la valeur par défaut du champ datetime de SQL Server vers un timestamp
J'ai une table qui recueille les formulaires envoyés à partir de notre site web, mais pour une raison quelconque, quand ils ont créé la table, ils n'ont pas mis un timestamp dans la table. Je veux entrez la date exacte et l'heure à laquelle l'enregistrement a été entré.
Je sais qu'il est là quelque part, mais je n'arrive pas à trouver comment définir la valeur par défaut (comme dans Access, vous utilisez getNow()
ou Now()
) mais je ne sais pas où le mettre.
- Méfiez-vous des fuseaux horaires: stackoverflow.com/a/31296917/57475
Vous devez vous connecter pour publier un commentaire.
Pour la modification d'une colonne dans une table existante:
GETUTCDATE()
au lieu deGETDATE()
ALTER TABLE [YourTable] ADD CONSTRAINT [DF_YourTabe_YourColumn] DEFAULT (getdate()) FOR [YourColumn]
my 2 centNOW()
? Fonctionne sur SQLyog, ce qui ne permet pasgetdate()
comme il le prend comme une erreurCela peut aussi être fait par le biais de la SSMS GUI.
(getdate())
dans Valeur par Défaut ouLa liaison champ comme sur la photo ci-dessous
dateadd(minute, 10, GetDate())
pour voir si cela fonctionne.Dans cette table dans SQL Server, spécifiez la valeur par défaut de la colonne à
CURRENT_TIMESTAMP
.Le type de données de cette colonne peut être datetime ou datetime2.
par exemple
J'espère que cela va fonctionner.
CURRENT_TIMESTAMP
renvoie unedatetime
valeur de l'heure locale de l'ordinateur de la zone. Il devrait être évitée. Au lieu d'utiliserSYSUTCDATETIME
qui renvoie unedatetime2
en UTC.Tandis que le marqué répondre est correct avec:
Vous devriez toujours être conscient de fuseaux horaires lors de l'ajout par défaut datetime valeurs dans une colonne.
Dire, par exemple, ce
datetime
valeur est conçu pour indiquer quand un membre se joint à un site web et vous voulez qu'il soit affichée sur l'écran de l'utilisateur,GETDATE()
vous donnera l'heure du serveur pourrait montrer les écarts si l'utilisateur est dans une région différente pour le serveur.Si vous vous attendez à les utilisateurs, il est préférable dans certains cas d'utiliser GETUTCDATE(), dont:
Lors de la récupération des valeurs, l'application front-end/site web doit transformer cette valeur à partir de l'heure UTC pour les paramètres régionaux et la culture de l'utilisateur le demande.
Interdire les valeurs Null sur la colonne et de définir une valeur par défaut sur la colonne de
getdate()
La syntaxe lors de la création d'une nouvelle table est:
Cela fonctionne pour moi...
Cela fonctionne aussi:
Ou:
Cela a fonctionné pour moi. Je suis à l'aide de SQL Developer, Oracle DB:
Pour le rendre plus simple à suivre, je vais résumer les réponses ci-dessus:
Disons que la table est appelé Client
il dispose de 4 colonnes/moins ou plus...
vous souhaitez ajouter une nouvelle colonne à la table où, chaque fois quand il y a insérer... alors que la colonne conserve un enregistrement de l'heure à laquelle l'événement s'est produit.
Solution:
ajouter une nouvelle colonne, disons timepurchase est la nouvelle colonne à la table avec le type de données datetime.
Puis exécutez la commande suivante alter:
Disons que vous créez une table de base de données pour un système d'enregistrement.
Maintenant un couple de personnes de s'inscrire.
Puis vous réalisez que vous avez besoin d'un timestamp lorsqu'ils se sont inscrits.
Si cette application est limitée géographiquement localisée de la région, puis vous peut utiliser le serveur de temps avec
GETDATE()
. Sinon, il faut tenir compte de Tanner considération pour le public global avecGETUTCDATE()
pour la valeur par défaut.Ajouter la colonne avec une valeur par défaut dans un énoncé comme cette réponse.
Nous allons obtenir d'une autre personne et de voir ce que l'apparence des données.
Dans SQLPlus lors de la création d'une table, c'est être comme
SQL> create table Test
SQL> insert into Test(id) values (1);