je stocke des valeurs de temps en sqlite en% H:% format de chaîne M (par exemple « 15:43 »), mais je voudrais les faire sortir au format au format 12 heures avec des indicateurs AM/PM (par exemple « 3 : 43 PM "). Est-ce possible avec sqlite (et si oui, comment), ou dois-je le faire dans mon code d'application?Pouvez-vous formater une chaîne de temps de 24 heures en chaîne de 12 heures avec AM/PM?
Répondre
Sauf si vous étendez sqlite avec votre propre custom function, vous devrez faire ceci est le code.
Date de sqlite strftime fonction de formatage ne supporte qu'un petit sous-ensemble de son homologue C, insuffisant pour votre problème. sqlite manque également une construction de sélection comme IF ou CASE, rendant simple si/sinon impossible.
Certains pseudo-code pour vous aider sur le chemin:
if (hourpart of time >= 12)
subtract 12 from hours
append string " pm"
else // hourpart < 12
append string " am"
end if
Dans SQL vous pouvez accomplir cela en utilisant la syntaxe CASE.
Après avoir regarder de plus près le problème:
SELECT (CASE HOUR(myTimeColumn) >= 12 WHEN 1 THEN
((HOUR(myTimeColumn) - 12) + '-' + MINUTE(myTimeColumn) + ' pm')
ELSE
(HOUR(myTimeColumn) + '-' + MINUTE(myTimeColumn) + ' am')
AS AmPmTime,
someOtherColumn
FROM myTable
Je ne suis pas tout à fait sûr que tout cela est valide la syntaxe de SQLite, mais vous devriez être en mesure de corriger les bugs.
Faites-le dans votre application. Stockez-le au format 24h normal dans la base de données. Dans la base de données, il peut être stocké comme une entrée Date au lieu d'une chaîne (corrigez-moi si je me trompe)
Comme PoweRoy recomended, cela appartient à l'application.
Il est recommandé que tout type de données stockées de utilisée en communication utilise un standard, format locale insensible à la casse: http://www.mihai-nita.net/article.php?artID=20051025a
Il y a quelques situation particulière qui sont couverts ici. J'utilise 'maintenant' comme source, mais vous pouvez le régler pour votre chaîne:
select
CASE
--For 00:05, for example.
WHEN (strftime('%H', 'now', 'localtime') - 12) = -12
THEN '12:' || strftime('%M', 'now', 'localtime') ||' '|| 'AM'
--For 12:05, for example.
WHEN (strftime('%H', 'now', 'localtime') - 12) = 0
THEN '12:' || strftime('%M', 'now', 'localtime') ||' '|| 'PM'
--other am time
WHEN (strftime('%H', 'now', 'localtime') - 12) < 0
THEN strftime('%H', 'now', 'localtime') ||':'||
strftime('%M', 'now', 'localtime') ||' '|| 'AM'
ELSE
--other pm time
(cast(strftime('%H', 'now', 'localtime') as integer) - 12) ||':'||
strftime('%M', 'now', 'localtime') ||' '|| 'PM'
END here_you_go_usa;
est ici un de travail un .. Merci à Tomas
SELECT
PatientName,
CASE WHEN
StrFTime('%H', AppointmentTime) % 12 = 0 THEN 12
ELSE StrFTime('%H', AppointmentTime) % 12 END
|| ':' ||
StrFTime('%M', AppointmentTime)
|| ' ' ||
CASE WHEN
StrFTime('%H', AppointmentTime) > 12 THEN 'PM'
ELSE 'AM' END
`APP_TIME`
From Patients;
SORTIE
Abdul Salim, 12:05 PM
- 1. mysql 12 heures à 24 heures de temps de conversion
- 2. Différence de temps en heures
- 3. Distributions gaussiennes avec PHP sur une période de 24 heures
- 4. Comment savoir si l'utilisateur utilise 24 heures de temps en utilisant Cocoa
- 5. comment ajouter 24 heures dans une colonne en ms accès
- 6. Expression régulière pour correspondre à 12 heures
- 7. Quelle est la meilleure façon de formater 24 heures dans XSLT 1.0?
- 8. DateTime Format comme HH: mm 24 heures sans AM/PM
- 9. visites de la fiche dans les 24 dernières heures
- 10. CultureInfo & DateTimeInfo: Comment vérifier si l'heure est de 24 heures?
- 11. exécuter une tâche PHP toutes les 24 heures
- 12. PHP MySql Stockage des données pendant 24 heures
- 13. .NET Expression régulière pour le format 24 heures
- 14. Regex permettant des heures en incréments de 15 minutes
- 15. Transformer une date en utilisant une expression régulière de 24Dec à 24/12 ou 24/12/2009
- 16. RIA Services + Entités - Date de déménagement 24 heures plus tôt dans le client
- 17. tâche Calculer les heures de début
- 18. Comment sélectionner les 24 dernières heures de lignes à partir d'un décalage de ligne
- 19. supprimer 5 heures de l'heure
- 20. convertir strptime en 'X heures ago'
- 21. Temps de mise en forme automatique dans TextBox ASP.Net Javascript
- 22. Afficher le nombre de visites dans les 24 dernières heures, réparties par heure
- 23. Comment afficher les heures d'ouverture?
- 24. NSNombre de secondes à Heures, minutes, secondes
- 25. Comment formater conditionnellement une chaîne dans .Net?
- 26. comment convertir la chaîne en format d'heure et ajouter deux heures
- 27. Comment formater une chaîne de HTML par programme
- 28. Est-il possible de formater une chaîne dans Flex
- 29. Comment formater une chaîne pour faire partie de l'URL?
- 30. Comment convertir l'entrée de l'utilisateur en heures, minutes, secondes