2010-09-27 20 views

Répondre

4

vous pouvez utiliser les éléments suivants

UPDATE mytable 
SET mydate = CAST(TIMESTAMPADD(SQL_TSI_YEAR, 100, datefield) as SQL_DATE) 
WHERE YEAR(datefield) = 1909 

(si vous avez un champ d'horodatage et non un champ de date, vous pouvez laisser le CAST .. AS SQL_DATE)


Pour concaténer vous devez concaténer des chaînes pour changer une chaîne, vous pouvez utiliser CAST ou CONVERT

UPDATE mytable 
SET datefield = CAST (TRIM(CAST(MONTH(datefield) AS SQL_CHAR)) + '/' + TRIM(CAST(DAYOFMONTH(datefield) AS SQL_CHAR)) + '/2009' AS SQL_DATE) 
WHERE YEAR(datefield) = 1909 

(si vous avez un champ d'horodatage et non un champ de date, vous pouvez laisser le CAST ... AS SQL_DATE, mais alors vous devez ajouter à nouveau dans le temps)

+0

ah, c'était le sql_char qui me manquait. Merci! –

0

Mon SQL est rouillé mais la base de données Advantage semble prendre en charge DATEADD. ... euh ... quelque chose comme ça?

UPDATE mytable 
SET field = DATEADD(Year, 100, field) 
FROM mytable 
WHERE field < '19100101' 
+0

dateadd() me donne une erreur ... peut-être qu'une chose V10? (Je suis toujours sur 9.1) –