IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Procédural MySQL Discussion :

Créer une fonction


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut Créer une fonction
    Bonjour je souhaite créér une fonction sql qui permet de retourner le quart d'heure le plus proche c'une heure donnée.
    sous SQL SERVER ça donnait ceci mais quand je l'execute su mysql (easyphp) ça marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    CREATE FUNCTION convertTime 
    (@Date datetime)
    RETURNS varchar(30)
    AS
    BEGIN
     
        DECLARE @var varchar(30)
        DECLARE @min int
        DECLARE @minQuarter varchar(2)
        DECLARE @DateVarchar varchar(19)
     
        DECLARE @DateDuJour datetime
     
     
        SELECT @min = DATEPART (minute  ,  @Date )
        SELECT @DateVarchar = convert(varchar,@Date,121 )
     
    	SELECT @minQuarter= CASE 
    		WHEN @min >= 0 AND @min <7 THEN '00'
    		WHEN @min >= 7 AND @min <23 THEN '15'
    		WHEN @min >= 23 AND @min <37 THEN '30'
    		WHEN @min >= 37 AND @min <60 THEN '45'
    		ELSE '00' END
     
     
                SELECT @var = substring(@DateVarchar,0,15)  + @minQuarter + ':00'
     
                RETURN @var
     
    end


    Avez vous des idées pourquoi ? merci

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 059
    Par défaut
    Bonjour,

    Les syntaxes de création de procédures et fonctions sont différents entre SQL Server et MySQL.
    On ne peut donc pas porter directement une fonction de SQL Server vers MySQL. Il faut la réécrire.
    Voici le lien vers la documentation de MySQL sur la syntaxe des fonctions : http://dev.mysql.com/doc/refman/5.0/...procedure.html.

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

Discussions similaires

  1. Créer une fonction
    Par Jeffboj dans le forum Access
    Réponses: 7
    Dernier message: 15/04/2006, 20h49
  2. Créer une Fonction recherche sur Access
    Par remwideco dans le forum Access
    Réponses: 4
    Dernier message: 30/01/2006, 10h36
  3. créer une fonction avec parametre optionnel
    Par maximenet dans le forum Langage
    Réponses: 2
    Dernier message: 29/01/2006, 20h51
  4. Réponses: 6
    Dernier message: 10/08/2005, 11h36
  5. Créer une fonction mathématique pendant l'exécution
    Par zeprogrameur dans le forum Langage
    Réponses: 5
    Dernier message: 09/07/2004, 11h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo