Précédent   Forum des professionnels en informatique > Bases de données > Sybase > Adaptive Server Enterprise
Adaptive Server Enterprise Forum d'entraide concernant Sybase Adaptive Server Enterprise, le dataserver phare de Sybase
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/07/2007, 12h24   #1
Membre du Club
 
Inscription : mars 2007
Messages : 248
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 248
Points : 46
Points : 46
Par défaut [T-SQL ASE-12.0]Insérer dates format conversion

Bonjour
j'ai mis du temps à consulter le forum et les infos dans la page :
http://fadace.developpez.com/sgbdcmp/fonctions/#LIV ne me fournissent pas de réponse.
Je me permets donc une question bête pour gagner du temps:

Dans une procédure T-SQL, comment insérer dans une colonne de type datetime une valeur transmise en parametre de type char et formatée : "DD/MM/YYYY HH24:MI:SS"

Peut-on spécifier d'autres formats que ceux du "Tableau 10-13: Conversion des formats de date ..." dans la doc ASE.

Merci
msomso
msomso est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2007, 15h05   #2
Rédacteur/Modérateur
 
Avatar de fadace
 
Homme Fabien Celaia
Administrateur de base de données
Inscription : octobre 2002
Messages : 3 779
Détails du profil
Informations personnelles :
Nom : Homme Fabien Celaia
Âge : 41
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Service public

Informations forums :
Inscription : octobre 2002
Messages : 3 779
Points : 8 124
Points : 8 124
Envoyer un message via ICQ à fadace Envoyer un message via Skype™ à fadace
__________________
Sr DBA Oracle / Sybase / MS-SQL / DB2 / Informix / Postgresql
Administrateur SAP
Mes articles

Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !
fadace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2007, 17h00   #3
Rédacteur/Modérateur
 
Inscription : janvier 2006
Messages : 1 301
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : janvier 2006
Messages : 1 301
Points : 1 505
Points : 1 505
Envoyer un message via AIM à mpeppler
Et pour ajouter un tout petit peu de précision à la réponse de fadace - par défaut Sybase comprend un grand nombre de format de dates. Le problème principal consiste dans l'ordre du jour et du mois (cad jj/mm/aaaa ou mm/jj/aaaa). Ce format dépend de la localisation du dataserveur (par défaut en mode US English ce sera mm/jj/aaaa).

C'est là que la command "set dateformat" entre en jeux. Si on veux dire à ASE que les dates sont de la forme jj/mm/aaa alors on exécute:
Code :
1
2
 
SET dateformat dmy
Michael
__________________
Michael Peppler
Membre de TeamSybase - www.teamsybase.com

"A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson
mpeppler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2007, 12h17   #4
Membre du Club
 
Inscription : mars 2007
Messages : 248
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 248
Points : 46
Points : 46
Bonjour merci,
je regarde si je peux aussi spécifier de cette manière le format de heure:
hh:mi:ss.
Merci
msomso est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2007, 13h12   #5
Rédacteur/Modérateur
 
Inscription : janvier 2006
Messages : 1 301
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : janvier 2006
Messages : 1 301
Points : 1 505
Points : 1 505
Envoyer un message via AIM à mpeppler
Cela ne devrait pas poser de problème. Dans une base Sybase ayant une localisation "US" (donc format par défaut m/j/année):
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
[41] DBA_SQL.testdb.1> CREATE TABLE ma_date(d datetime);
[42] DBA_SQL.testdb.1> INSERT ma_date VALUES('7/6/2007 12:22:33');
(1 row affected)
[43] DBA_SQL.testdb.1> SET dateformat dmy;
[44] DBA_SQL.testdb.1> INSERT ma_date VALUES('7/6/2007 12:22:33');
(1 row affected)
[46] DBA_SQL.testdb.1> INSERT ma_date VALUES('20070607 12:22:34');
(1 row affected)
[47] DBA_SQL.testdb.1> SELECT * FROM ma_date;
 d
 -------------------
 Jul  6 2007 12:22PM
 Jun  7 2007 12:22PM
 Jun  7 2007 12:22PM
 
(3 rows affected)
ASE est relativement "intelligent" pour le format des dates, et il n'est souvent pas nécessaire de spécifier de conversions particulières - le seul vrai problème étant l'order du mois/jour ou jour/mois dans les formats prétant à confusion.

Comparé à Oracle c'est en général nettement plus simple...

Michael
__________________
Michael Peppler
Membre de TeamSybase - www.teamsybase.com

"A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson
mpeppler est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2007, 13h45   #6
Membre du Club
 
Inscription : mars 2007
Messages : 248
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 248
Points : 46
Points : 46
Merci,
en effet, ça marche

J'ai vu cette cde dans la doc, mais je pensais qu'il me fallait autre chose pour gérer l'heure.
msomso

P.S.
La doc sybase [ASE 12.0] indique les format invalides pour "dateformat": jma au lieu de dmy. On obtient Erreur 2741.
msomso est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h07.


 
 
 
 
Partenaires

Hébergement Web