2010-11-19 35 views
1

Je voudrais afficher un datetime CAST dans une table SQL en utilisant le format RFC822 (ex: Fri, 19 Nov 2010 13:43:39) de la SELECT suivante (partie d'une instruction plus trouvé here)Affichage d'un datetime CAST dans RFC822 Format

*_snip_* 

,(Select Cast(Cast(FieldValue as nvarchar(max)) as DateTime) 
    from dbo.UserDefinedData where UserDefinedFieldId = 298 
    and UserDefinedRowId = item.UserDefinedRowId) as [pubDate] 

Le bit de SQL ci-dessous récupérera la date actuelle dans le format désiré. Comment puis-je l'intégrer dans la déclaration ci-dessus (ou existe-t-il un meilleur moyen d'atteindre mon objectif)?

select left(datename(dw,getdate()),3)+', '+convert(varchar(20),getdate(),113) 

Répondre

0
,(Select left(datename(dw,cast(fieldvalue as nvarchar(50))),3)+', '+ 
    convert(varchar(20),cast(fieldvalue as nvarchar(50)),113) 
    from dbo.UserDefinedData where UserDefinedFieldId = 298 
    and UserDefinedRowId = item.UserDefinedRowId) as [pubDate] 
+0

[FieldValue] est ntext et je reçois un "choc de type Opérande: ntext est incompatible avec datetime" erreur. (J'aurais mentionné que c'était ntext auparavant, mais je ne suis pas familier avec les relations de types de données, c'est à partir d'une table de modules de base DotNetNuke que je voudrais éviter de changer de type de données si possible). – JDV

+0

Édité. Essayez. – Stu

+0

La requête s'exécute avec succès, mais elle ne modifie que certaines dates pour une raison quelconque. ("2010-04-03 00: 00: 00.000" devient "Sat, 4/3/2010" alors que "2010-04-10 00: 00: 00.000" devient "Sat, 2010-04-10T00: 00: 00" – JDV