Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL Quarter(date) Funktion nicht unterstuetzt? (https://www.delphipraxis.net/14496-sql-quarter-date-funktion-nicht-unterstuetzt.html)

hanko panko 10. Jan 2004 15:51


SQL Quarter(date) Funktion nicht unterstuetzt?
 
Bitte, achte nicht auf meine "Deutsche Sprache".

Folgende Query lauft bei mir nicht:

'Select Year(DT) AS [year],Month(DT) AS [month], Quarter(DT) AS [quarter] From Moves';

Die Fehlermeldung sagt dass es sich hier um ein unbekannten Anruf handelt. Erkennen Sie dass?

Ich brache das Feld Quarter (integer). Wie kan Ich dass aufloesen mit ein Query?

MrSpock 10. Jan 2004 16:03

Re: SQL Quarter(date) Funktion nicht unterstuetzt?
 
Hallo hanko panko,

zunächst einmal herzlich willkommen im Delphi-PRAXIS Forum.

Dein deutsch ist um einiges besser als mein holländisch :mrgreen: .

QUARTER ist keine Standard-SQL Funktion. Möglicherweise unterstützt deine Datenbank aber das Definieren von eigenen Funktionen. Welches Datenbankmanagementsystem benutzt du denn?

Robert_G 10. Jan 2004 16:09

Re: SQL Quarter(date) Funktion nicht unterstuetzt?
 
sieht aus wie MS Access.
Da gibt es glaube ich sowas:
SQL-Code:
SELECT Switch(Month(DT) < 4; 1;
              Month(DT) >= 4 and Month(DT) <= 6; 2;
              Month(DT) >= 7 and Month(DT) <= 9; 3;
              Month(DT) >= 10 and Month(DT) <= 12; 4) Quarter
FROM  ...
[Edit]bitte nicht schlagen, treten, schimpfen ich bin kein Access-user[/Edit]

r_kerber 10. Jan 2004 16:14

Re: SQL Quarter(date) Funktion nicht unterstuetzt?
 
Hallo Spocky,

scheint eine "Special"-Function von MySQL zu sein. Habe mal ein wenig gegoogelt. ORACLE, Informix und SQL-Server dürfte diese Funktion nicht unterstützen.

Sharky 10. Jan 2004 16:16

Re: SQL Quarter(date) Funktion nicht unterstuetzt?
 
Hai hanko panko,

eventuell unterstuetzt deine Datenbank ja die Funktion Datepart. Dann wäre der SQL-Befehl so aufgebaut:

SQL-Code:
SELECT DATEPART (year,dt) AS year, DATEPART (month,dt) AS month, DATEPART (quarter,dt) AS quarter FROM moves

r_kerber 10. Jan 2004 16:21

Re: SQL Quarter(date) Funktion nicht unterstuetzt?
 
Zitat:

Zitat von Sharky
Datepart.

Das ist VBA für MS Access, oder täusche ich mich da?

Sharky 10. Jan 2004 16:27

Re: SQL Quarter(date) Funktion nicht unterstuetzt?
 
Zitat:

Zitat von r_kerber
Das ist VBA für MS Access, oder täusche ich mich da?

Keine Ahnung ;-) Mein MS-SQL Server bezeichnet es als T-SQL Funktion.

hanko panko 10. Jan 2004 16:33

Re: SQL Quarter(date) Funktion nicht unterstuetzt?
 
Zitat:

Zitat von Sharky
Hai hanko panko,

eventuell unterstuetzt deine Datenbank ja die Funktion Datepart. Dann wäre der SQL-Befehl so aufgebaut:

SQL-Code:
SELECT DATEPART (year,dt) AS year, DATEPART (month,dt) AS month, DATEPART (quarter,dt) AS quarter FROM moves

Danke Sharky!

Lauft aber (noch) nicht. Mein ganze Query lautet:

CommandText:='SELECT DATEPART (year,NEXTPLACEARDT) AS Jahr, '+
'DATEPART (month,NEXTPLACEARDT) AS Monat, DATEPART (quarter,NEXTPLACEARDT) AS Viertel '+
'From Moves9902EXT';

Und das bringt: "Parameter year has no default value" ???

hanko panko 10. Jan 2004 16:34

Re: SQL Quarter(date) Funktion nicht unterstuetzt?
 
Zitat:

Zitat von MrSpock
Hallo hanko panko,

zunächst einmal herzlich willkommen im Delphi-PRAXIS Forum.

Dein deutsch ist um einiges besser als mein holländisch :mrgreen: .

QUARTER ist keine Standard-SQL Funktion. Möglicherweise unterstützt deine Datenbank aber das Definieren von eigenen Funktionen. Welches Datenbankmanagementsystem benutzt du denn?

Microsoft Jet 4.0 OLE DB Provider

r_kerber 10. Jan 2004 16:41

Re: SQL Quarter(date) Funktion nicht unterstuetzt?
 
Zitat:

Zitat von hanko panko
Microsoft Jet 4.0 OLE DB Provider

Also MS Access? Dann verwende doch DATEPART, wie bereits vorgeschlagen.

Sharky 10. Jan 2004 16:48

Re: SQL Quarter(date) Funktion nicht unterstuetzt?
 
Hai hanko panko,

Hier mal ein LINK mit der Beschreibung von DatePart bei Access.

hanko panko 10. Jan 2004 16:55

Re: SQL Quarter(date) Funktion nicht unterstuetzt?
 
Zitat:

Zitat von GeorgeWNewbie
sieht aus wie MS Access.
Da gibt es glaube ich sowas:
SQL-Code:
SELECT Switch(Month(DT) < 4; 1;
              Month(DT) >= 4 and Month(DT) <= 6; 2;
              Month(DT) >= 7 and Month(DT) <= 9; 3;
              Month(DT) >= 10 and Month(DT) <= 12; 4) Quarter
FROM  ...
[Edit]bitte nicht schlagen, treten, schimpfen ich bin kein Access-user[/Edit]

Sieht gut aus, aber ich bekomme noch ain Fehler: "Syntax Error". Kennt "Switch" nicht?

hanko panko 10. Jan 2004 16:58

Re: SQL Quarter(date) Funktion nicht unterstuetzt?
 
Zitat:

Zitat von r_kerber
Zitat:

Zitat von hanko panko
Microsoft Jet 4.0 OLE DB Provider

Also MS Access? Dann verwende doch DATEPART, wie bereits vorgeschlagen.

Noch einmal versucht:

CommandText:='SELECT DATEPART(year,NEXTPLACEARDT) AS Jaar From Moves9902EXT';

Statt 'year' habe ich auch "y" und "yy" probiert.

Fehlermeldung bleibt: 'Parameter year has no default value'

Was mache ich falsch?

Robert_G 10. Jan 2004 17:07

Re: SQL Quarter(date) Funktion nicht unterstuetzt?
 
Ich wusste nicht ob Access im SQL-Code ";" statt "," haben will.
Wenn es Access ist versuch's mal so:
SQL-Code:
SELECT Switch(Month(DT) < 4, 1,
              Month(DT) >= 4  and Month(DT) <= 6, 2,
              Month(DT) >= 7  and Month(DT) <= 9, 3,
              Month(DT) >= 10 and Month(DT) <= 12, 4) Quarter
FROM  ...

hanko panko 10. Jan 2004 17:08

Es hat geklappt!
 
Sehr vielen Dank!

Folgendes wirkt jetzt gut:

CommandText:='SELECT DATEPART("q",NEXTPLACEARDT) AS Viertel From Moves9902EXT';

r_kerber 10. Jan 2004 17:11

Re: SQL Quarter(date) Funktion nicht unterstuetzt?
 
Versuche mal folgendes (Zum Teil aus der Access-OH):
SQL-Code:
SELECT DatePart("q"; date) AS quarter FROM table;
Ich weiß aber nicht, ob man bei Access so einfach VBA-Funktionen im SELECT-Statement verwenden kann.

hanko panko 10. Jan 2004 17:22

Re: SQL Quarter(date) Funktion nicht unterstuetzt?
 
Zitat:

Zitat von r_kerber
Versuche mal folgendes (Zum Teil aus der Access-OH):
SQL-Code:
SELECT DatePart("q"; date) AS quarter FROM table;
Ich weiß aber nicht, ob man bei Access so einfach VBA-Funktionen im SELECT-Statement verwenden kann.

WIRKT!


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:05 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz