J'ai un tableau qui recueille les formulaires soumis à partir de notre site Web, mais pour une raison quelconque, lorsqu'ils ont créé le tableau, ils n'ont pas mis d'horodatage dans le tableau. Je souhaite qu'il saisisse la date et l'heure exactes de l'enregistrement.
Je sais que c'est 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.
sql-server
datetime
stephmoreland
la source
la source
Réponses:
Pour modifier une colonne existante dans une table existante:
la source
TheQ
suppose que vous modifiez une colonne existante que je ne pense pas être le cas? Voir ma réponse pour le code pour ajouter une nouvelle colonne avec cette contrainte par défaut.GETUTCDATE()
au lieu deGETDATE()
Cela peut également être fait via l'interface graphique SSMS.
(getdate())
dans le champ Valeur par défaut ou Liaison comme illustré ci-dessousla source
dateadd(minute, 10, GetDate())
de voir si cela fonctionne.Dans ce tableau dans SQL Server, spécifiez la valeur par défaut de cette colonne
CURRENT_TIMESTAMP
. Le type de données de cette colonne peut être datetime ou datetime2.par exemple
la source
CURRENT_TIMESTAMP
renvoie unedatetime
valeur dans le fuseau horaire local de l'ordinateur. Cela devrait être évité. Utilisez à la placeSYSUTCDATETIME
ce qui renvoie undatetime2
en UTC.Alors que la réponse marquée est correcte avec:
Vous devez toujours être conscient des fuseaux horaires lorsque vous ajoutez des valeurs datetime par défaut dans une colonne.
Supposons, par exemple, que cette
datetime
valeur soit conçue pour indiquer quand un membre a rejoint un site Web et que vous souhaitez qu'il soit affiché à l'utilisateur,GETDATE()
vous donnera l'heure du serveur et pourrait afficher des écarts si l'utilisateur se trouve dans un environnement local différent du serveur.Si vous prévoyez de traiter avec des utilisateurs internationaux, il est préférable dans certains cas d'utiliser GETUTCDATE () , qui:
Lors de la récupération des valeurs, l'application / site Web frontal doit transformer cette valeur de l'heure UTC en paramètres régionaux / culture de l'utilisateur qui la demande.
la source
Interdire les null sur la colonne et définir une valeur par défaut sur la colonne de
getdate()
la source
La syntaxe pour cela lors de la création d'une nouvelle table est:
la source
Cela fonctionne pour moi ...
la source
Cela fonctionne également:
Ou:
la source
Cela a fonctionné pour moi. J'utilise SQL Developer avec Oracle DB:
la source
Pour le rendre plus simple à suivre, je résumerai les réponses ci-dessus:
Disons que la table s'appelle Client, elle a 4 colonnes / moins ou plus ...
vous voulez ajouter une nouvelle colonne à la table où chaque fois qu'il y a insertion ... alors cette colonne conserve un enregistrement de l'heure à laquelle l'événement s'est produit.
Solution:
ajoutez une nouvelle colonne, disons timepurchase est la nouvelle colonne, à la table avec le type de données datetime .
Exécutez ensuite la modification suivante:
la source
Disons que vous créez une table de base de données pour un système d'enregistrement.
Maintenant, quelques personnes s'inscrivent.
Ensuite, vous réalisez que vous avez besoin d'un horodatage pour le moment où ils se sont inscrits.
Si cette application est limitée à une région géographiquement localisée, vous pouvez utiliser l'heure du serveur local avec
GETDATE()
. Sinon, vous devez tenir compte de la considération de Tanner pour le public mondial avecGETUTCDATE()
la valeur par défaut.Ajoutez la colonne avec une valeur par défaut dans une déclaration comme cette réponse .
Obtenons un autre inscrit et voyons à quoi ressemblent les données.
la source
Dans SQLPlus lors de la création d'une table, c'est comme
SQL> créer un test de table
SQL> insérer dans les valeurs Test (id) (1);
la source