VFP – Warum SELECT SQL das date als String zurückgibt

Ich habe einen Tisch, um einen Test in der performance zu machen, etc. In dieser Tabelle habe ich ein Feld "cpDATA" als DATE-Typ und ein anderes Feld "cpDATATIME" als datetime-Typ.

Weiß jemand, warum, wenn ich "SELECT * FROM teste" diese Rückkehr "cpDATA" als String?

Dies ist das Skript für den Tisch:


CREATE TABLE teste]( [CpTexto] [varchar](50) NULL, [CpData] [date] NULL, [CpDataTime] [datetime] NULL, [CpValor] [numeric](15, 5) NULL, [CpInteiro] [int] NULL, [ID] [int] IDENTITY(1,1) NOT NULL ) ON [PRIMARY] 

Und das ist für SQLEXECUTE:

 lcNumConex = 1 pStringSQL = [SELECT * FROM TESTE] pCursor = [tmpResult] SQLEXEC(lcNumConex,pStringSql,pCursor) 

Wenn ich das verwende, kann ich auf dem Cursor sehen, der als Ergebnis aus der Abfrage erstellt wurde, das Feld "cpDATA" als String statt datatyp.

Hilft mir jemand?

Einige ältere databaseanbieter unterstützen den neueren datatyp nicht in SQL server. Es ist möglich, vielleicht sogar wahrscheinlich, dass Sie eine Textdarstellung erhalten, da die Unfähigkeit des Anbieters besteht, diesen datatyp mit einem zugrunde liegenden numerischen Wert darzustellen, da er nicht weiß, was der datatyp ist.

Du SELECT cpData = Convert(datetime, cpData) FROM ... dies SELECT cpData = Convert(datetime, cpData) FROM ... indem du SELECT cpData = Convert(datetime, cpData) FROM ... um einen älteren datatyp SELECT cpData = Convert(datetime, cpData) FROM ... fast sicher unterstützt wird. Allerdings bin ich mir nicht sicher, wie Updates gegen den Tisch funktionieren würden.

Noch besser, überprüfen Sie und sehen Sie, ob es einen aktualisierten Provider (der Treiber für Ihre databaseverbindung) wie "SQL server Native Client" gibt, der die neuen datatypen unterstützen kann.