Ich versuche, ein Objekt zu erhalten, dessen Startdatum + Startzeit abgelaufen ist oder gleich dem aktuellen Datum ist und dessen Enddatum + Endzeit das aktuelle Datum nicht überschritten hat. Ich habe versucht, das aktuelle Datum in nvarchar umzuwandeln, da alle meine Spalten nvarchar sind. Ich habe auch versucht, meine Spalten in datetime Typ zu konvertieren, aber es funktioniert auch nicht. Bitte helfenSQL Server Datum Zeit
Säule:
startDate - nvarchar (dd/mm/yyyy)
startTime - nvarchar (hh:mm) 24 hr
endDate - nvarchar(dd/mm/yyyy)
endTime - nvarchar(hh:mm) 24hr
ich habe versucht, aber Datetime betwween startdate + Startzeit und endDate + Startzeit, aber es scheint nicht zu funktionieren:
SELECT * FROM Promo
WHERE membership = '1'
AND promoStatus = '1'
AND CONVERT(NVARCHAR, GetDate(), 101) + ' ' +
CONVERT(NVARCHAR, DATEPART(hh, GetDate())) + ':' +
RIGHT('0' + CONVERT(NVARCHAR, DATEPART(mi, GetDate())), 2) BETWEEN
startDate + ' ' + startTime
AND endDate + ' ' + endTime
ich habe versucht andere Methode auch:
SELECT * FROM Promo
WHERE membership = '1'
AND promoStatus = '1'
AND startDate + ' ' + startTime <= CONVERT(NVARCHAR, GetDate(), 101) + ' ' +
CONVERT(NVARCHAR, DATEPART(hh, GetDate())) + ':' +
RIGHT('0' + CONVERT(NVARCHAR, DATEPART(mi, GetDate())), 2)
AND endDate + ' ' + endTime >= CONVERT(NVARCHAR, GetDate(), 101) + ' ' +
CONVERT(NVARCHAR, DATEPART(hh, GetDate())) + ':' +
RIGHT('0' + CONVERT(NVARCHAR, DATEPART(mi, GetDate())), 2)
Bitte geben Sie Beispieldaten und erwartete Ergebnis. –