J'ai des problèmes avec le code suivant:
INSERT into `fun` ( funner) SELECT YEAR(STR_TO_DATE(SUBSTRING(time,1,4), '%Y')) FROM `orig`
3 Réponses :
Vous pouvez convertir la soustrine Il n'est pas nécessaire de la convertir d'abord à une date, puis de convertir en Entier. (heure, 1,4) code> en intiqueger:
Je suppose que vous devez retourner une valeur entière puisque vous utilisez la fonction d'année (). de
Si ce n'est pas un simple Sélectionnez la sous-chaîne (heure, 1,4) de Orig code> fera. P> P>
Je recommanderais d'utiliser l'un des DataTypes MySQL MySQL habituels , au lieu de la rarement utilisée Si vous voulez tourner votre Chaîne à une date code> DataType, alors: p> Vous pouvez utiliser la fonction Enfin: Si tout ce que vous voulez, obtenez l'année à partir d'une date stockée en tant que chaîne, alors vous pouvez directement extraire la chaîne en utilisant année code> DataType : date code>, DateTime code> et horodatage code>. année () code> à cette date et Il retournera un integer code> valeur: p> substr code>: p> SUBSTR(my_column, 1, 4)
@ GMB, je dois être mal compris l'option "Année (4)" sous la section Date et heure comme type? J'ai aussi le temps et l'année en plus de date, datetime et horodatage
@Hannahgarcia: Mon erreur! J'ai mis à jour ma réponse un peu.
Qu'est-ce que heure code> ressemble? Si année code> a l'année de type de données, vous pouvez insérer une date dans la colonne: INSERT into `clean` (year)
SELECT DATE(CONCAT(SUBSTRING(time, 1, 4), '-01-01'))
FROM `orig` ;
Pourquoi
sous-chaîne (heure, 1,4) code> n'est pas suffisant?@ Salman A parce que je insère les données dans une colonne avec un type de données de date / heure