verwendetes Datenbanksystem: <MYSQL>
Hallo zusammen
wie kann ich den in einem OpenQuery einen Cast durchführen?
Das Result der Spalte DelT ist immer NULL.
SELECT * FROM OPENQUERY(MYSQL, 'SELECT usName, CreateT, ChangeT, IFNULL(DelT,CAST(2018-1-1 as DateTime)) AS DelT FROM DB1.Users')
Vielen Dank,
Manullino
Das Problem sieht mir zumindest eher danach aus, dass Du mit IFNUL auf ein Element (DelT) zugreifen willst, das zu diesem Zeitpunkt gar nicht existieren kann, weil sich dies aus dem SELECT erst ergibt.
Und ein CAST wird sicherlich nicht so funktionieren; auch ohne OpenQuery nicht.
Eher CAST('2018-01-01' as DateTime)
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Das Feld DelT gibt es schon in der Datenbank.
Hab den Query angepasst, bleibt aber bei dem NULL.
SELECT * FROM OPENQUERY(MYSQL, 'SELECT usName, CreateT, ChangeT, IFNULL(DelT,CAST(NOW() AS DATETIME)) AS DelT2 FROM DB1.Users')
Convert geht übrigens auch nicht:
SELECT * FROM OPENQUERY(MYSQL, 'SELECT usName, CreateT, ChangeT, IFNULL(DelT,CONVERT(NOW(), DATETIME)) AS DelT2 FROM DB1.Users')
Den MySQL Query habe ich gefixt, es lag am IFNULL().
SELECT usName, CreateT, ChangeT, IF(DelT = '0000-00-00 00:00:00',CAST(NOW() AS DATETIME),DelT) AS DelT FROM Users
Allerdings gibt OPENQUERY fuer das Feld DelT nun einen falschen Wert (varbinary) zurueck.
0x323031372D31322D31322031323A35333A3338
Erwartet wird aber DateTime()
SELECT * FROM OPENQUERY(MYSQL, 'SELECT usName, CreateT, ChangeT, IF(DelT = "0000-00-00 00:00:00",CAST(NOW() AS DATETIME),DelT) AS DelT FROM Radex.Users')
Habt Ihr eine Idee?