Toon posts:

[MySQL] UDF maken

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi mensen,

Ik wil graag udf's maken in MySQL, die een weeknummer en het bijbehorende jaar kan berekenen op basis van een opgegeven datum. Dit omdat de database nu nog in Access staat en ik het wil overzetten naar MYSQL. In VB heb ik daarvoor de volgende code:

Visual Basic:
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
Public Function Weeknr(d As Date) As Integer
    
    On Error GoTo Err_Weeknr
    
    Dim t As Long

    t = DateSerial(Year(d + (8 - WeekDay(d)) Mod 7 - 3), 1, 1)
    KWeek = ((d - t - 3 + (WeekDay(t) + 1) Mod 7)) \ 7 + 1
    Exit Function

Err_Weeknr:
    Weeknr = 0
    
End Function

Public Function Jaarnr(d As Date) As Integer
    
    On Error GoTo Err_Jaar
    
    Jaarnr = Year(d)
    
    If Weeknr(d) = 1 And Month(d) = 12 Then Jaarnr = Year(d) + 1
    If Weeknr(d) = 53 And Month(d) = 1 Then Jaarnr = Year(d) - 1
    If Weeknr(d) = 52 And Month(d) = 1 Then Jaarnr = Year(d) - 1
    
    Exit Function
    
Err_Jaar:
    Jaarnr = 0
    
End Function


Hoe kan ik deze functies overzetten naar MySQL zodat ze als UDF aan te roepen zijn? Dus bv :

code:
1
SELECT Weeknr(datum) AS Week, Jaarnr(datum) as Jaar FROM Entry_DB


Ja, ik ben een noob ;) op MySQL gebied en heb ook UTFS, maar kom er niet uit 8)7.

DANK!!!! _/-\o_

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Ondersteund MySQL uberhaupt wel het gebruik van UDF's? De 3.x versie in ieder geval niet en bij mijn weten de 4.0 ook nog niet (maar daar kan ik fout zitten).

Maar als je eens bladert door de date/time functions van MySQL dan kom je denk ik al een heel eind.

Today's subliminal thought is:


Verwijderd

het is in mysql idd ingebakken:

code:
1
SELECT WEEK(datum), YEAR(datum) FROM table


Daarnaast ondersteunt mysql al wel UDF:
9.2.2 Adding a New User-definable Function

Mysql heeft een erg uitgebreide manual, als je dus verder nog wat zoekt is het sneller meteen daar te kijken.

[ Voor 60% gewijzigd door Verwijderd op 20-03-2003 13:12 . Reden: udf toegevoegd ]