Datumswandler für SQL (MySQL)

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
mk-soft
Beiträge: 3701
Registriert: 24.11.2004 13:12
Wohnort: Germany

Datumswandler für SQL (MySQL)

Beitrag von mk-soft »

Hier eine kleine Hilfe um ein Datum in gültiges Datum für SQL umzuwandeln
(Für Windows)

Code: Alles auswählen

;-TOP
; Kommentar     : Formatumwandlung von Datum nach SQL Datum
; Author        : mk-soft
; Second Author : 
; Datei         : DateHelper.pb
; Version       : 1.01
; Erstellt      : 2007.03.03
; Geändert      :
; 
; Compilermode  : 
;
; ***************************************************************************************

Import "oleaut32.lib"
 VarBstrFromDate(dblln.d, lcid.l, dwFlags.l, *pbstrOut)                                                 
 VarDateFromStr(strIn.p-unicode, lcid.l, dwFlags, *pdateOut)
EndImport

; ***************************************************************************************

Procedure.s SqlDateStrFromDate(date.d)

  Protected result.s, datum.s, *pbstrOut
  
  If VarBstrFromDate(date, $0407, #LOCALE_NOUSEROVERRIDE, @*pbstrOut) <> #S_OK
    ProcedureReturn "0000-00-00 00:00:00"
  EndIf
  
  result = PeekS(*pbstrOut,#PB_Any, #PB_Unicode)
  SysFreeString_(*result)
  If Len(result) <= 8
    ProcedureReturn "0000-00-00 00:00:00"
  EndIf
  
  datum = Mid(result, 7, 4) + "-"
  datum + Mid(result, 4, 2) + "-"
  datum + Mid(result, 0, 2) + " "
  datum + Mid(result, 12, 8)
  If Len(datum) < 12
    datum + "00:00:00"
  EndIf
  ProcedureReturn datum
  
EndProcedure

; ***************************************************************************************

Procedure.s SqlDateStrFromDateStr(date.s)

  Protected datum.d, result.s

  VarDateFromStr(date, 0, #LOCALE_NOUSEROVERRIDE, @datum)
  result = SqlDateStrFromDate(Datum)
  ProcedureReturn result
  
EndProcedure

; ***************************************************************************************

; Test

datum.d = 23974.625

Debug SqlDateStrFromDate(datum)  
Debug SqlDateStrFromDateStr("8/20/65 3:00 PM")
Debug SqlDateStrFromDateStr("20.8.65 15:00")
Debug SqlDateStrFromDateStr("20-08-65 15:00")

FF :wink:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive