2009-10-08 7 views
0

J'utilise la fonctionnalité de base de données locale dans AIR 1.5. J'ai une table qui est créé par:Problème de date et de date SQL

"CREATE TABLE IF NOT EXISTS employees (timeAdded Date, name STRING)" 

Maintenant, supposons que je veux que chaque employé a ajouté entre date1:Date et date2:Date, je le ferais à l'aide:

"SELECT * FROM employees WHERE " + date1 + "<timeAdded AND timeAdded<" + date2 

Cela ne fonctionne pas, parce que le type Date dans SQL est un Julian day number (JDN) et date1 et date2 sont des dates au format flash. Il n'est pas possible d'obtenir le JDN d'une date via flash. Comment puis-je résoudre le problème?

Modifier: Je n'ai pas trouvé de solution à ce problème, mais j'ai utilisé la fonction Date.time à la place.

Répondre

1

Etes-vous sûr que ce n'est pas le résultat de ne pas avoir de guillemets autour des dates?

Essayez: "SELECT * FROM employees WHERE '" + date1 + "'<timeAdded AND timeAdded<'" + date2+"'"

Sinon, est-il pas de méthode flash "ToString" ou quelque chose pour les dates?

J'ai trouvé le 'formaté en chaîne' que vous voulez. Vous recherchez la classe DateFormatter, qui est apparemment (malheureusement) un téléchargement séparé: http://www.yapiodesign.com/blog/2005/11/10/dateformatter-static-class-update-of-darron-schalls-dateformatas/

AUSSI: avez-vous regardé dans les classes "DateUtil"?

Enfin: Quelqu'un qui a eu le même problème, et a résolu le problème: http://blog.wheelerstreet.com/a-quick-actionscript-3-workaround-for-ms-sql

+0

J'ai essayé ajouté le '' mais sans chance. La méthode 'ToString' ne renvoie pas de numéro de jour julien, elle renvoie une chaîne au format" Jeu Oct 8 15:06:07 2009 UTC " – sigvardsen

+0

Découvrez les dernières choses, le dernier lien a quelqu'un qui a eu un problème similaire Les classes DateFormatter et DateUtil sont décrites dans ce dernier lien et contiennent des fonctions pour vous aider. – Erich

+0

Je pense que vous avez tort, quand vous appelez toString() en flash, il renvoie le format "Jeu Oct 8 15:06:07 2009 UTC". J'ai besoin d'un numéro de jour julien. – sigvardsen

1

Pour ceux qui recherchent la réponse à l'avenir:

sqlStatement.text = "SELECT * FROM employees WHERE :date1 < timeAdded AND timeAdded < :date2" 
sqlStatement.parameters[":date1"] = date1; 
sqlStatement.parameters[":date2"] = date2; 

Cela devrait fonctionner.