Eftersom du inte nämner vilket DBMS antar jag SQL Server:
SELECT DISTINCT cast(convert(datetime, datum, 120) as char(10)) AS datte FROM Kalender WHERE cast(convert(datetime, datum, 120) as char(7)) = '" & Left(datum,7) & "'
Databaser & SQLur Databashanterare & SQL
3 svar · 447 visningar · startad av asp
Hej.
Jag har en tabell med nyheter. Varje nyhet har ett långt datum, d.v.s. YYYY-MM-DD HH:MM:SS.
När jag vill hämta de dagar det finns nyheter i en månad skriver jag:
"SELECT DISTINCT Left(Datum,10) AS datte FROM Kalender WHERE Left(Datum,7) = '" & Left(datum,7) & "'"
Problemet är att servern har annat datumformat, det där förbannade DD/MM/YYYY eller om det är omvänd ordning... Jag har använt lcid = 1053 men detta påverkar tyvärr inte SQL-satserna (däremot övrig ASP kod).
Jag kan ju heller inte skapa en egen datumformatering (egen funktion) som jag skriver istället för Left(datum,10). Då klagar den.
Min fråga är om jag kan lösa detta på något annat sätt.
Eftersom du inte nämner vilket DBMS antar jag SQL Server:
SELECT DISTINCT cast(convert(datetime, datum, 120) as char(10)) AS datte FROM Kalender WHERE cast(convert(datetime, datum, 120) as char(7)) = '" & Left(datum,7) & "'
Sorry :( Jag använder Access.
"SELECT DISTINCT Format(Datum, 'yyyy-mm-dd') AS datte FROM Kalender WHERE Format(Datum, 'yyyy-mm') = '" & Left(datum,7) & "'"