MS SQL a Interbase format daty?
kurciok@poczta.onet.pl - 13-11-2006 00:43
MS SQL a Interbase format daty?
W MS SQL date podaje sie w formacie rok dzien miesiac czy da sie cos zrobic aby mozna bylo ja podawac normalnie czyli rok miesiac dzien?
Nizej mam przyklad identycznego zapytania dla Interbase i MSSQL chcialbym aby zapytanie w MSSQL wygladalo tak samo jak w Interbase. Moze trzeba po prostu cos przestawic.
Interbase SELECT COUNT(PLR_ID) FROM PL_REGISTRATIONS WHERE (PLR_DATE >='2006-10-13 00:00' AND PLR_DATE <= '2006-10-13 23:59')
MSSQL SELECT COUNT(PLR_ID) FROM PL_REGISTRATIONS WHERE (PLR_DATE >='2006-13-10 00:00' AND PLR_DATE <= '2006-13-10 23:59')
Sebastian - 13-11-2006 00:43
kurciok@poczta.onet.pl wrote: > W MS SQL date podaje sie w formacie rok dzien miesiac czy da sie > cos zrobic aby mozna bylo ja podawac normalnie czyli rok miesiac > dzien? > > Nizej mam przyklad identycznego zapytania dla Interbase i MSSQL > chcialbym aby zapytanie w MSSQL wygladalo tak samo jak w Interbase. > Moze trzeba po prostu cos przestawic. > > Interbase > SELECT COUNT(PLR_ID) FROM PL_REGISTRATIONS WHERE (PLR_DATE >> ='2006-10-13 00:00' AND PLR_DATE <= '2006-10-13 23:59') > > MSSQL > SELECT COUNT(PLR_ID) FROM PL_REGISTRATIONS WHERE (PLR_DATE >> ='2006-13-10 00:00' AND PLR_DATE <= '2006-13-10 23:59') >
Hi
moze to Ci pomoze
SET DATEFORMAT mdy GO DECLARE @datevar datetime SET @datevar = '12/31/98' SELECT @datevar GO
regards SW
Robert Winkler - 13-11-2006 00:43
>W MS SQL date podaje sie w formacie rok dzien miesiac czy da sie > cos zrobic aby mozna bylo ja podawac normalnie czyli rok miesiac > dzien?
Nie wiem w jaki sposób laczysz sie z baza i jak przygotowujesz to zapytanie ale ja dla przykladu korzystam w aplikacjach ze sterowników OLEDB oraz w aplkacjach .NETowych z natywnego interfejsu z System.Data.SqlClient i zawsze daty przykazuje jako parametry, nigdy jako czesc zapytania. Gwarantuje mi to iz systemowe biblioteki dostepu do bazy dokonaja stosownej konwersji pomiedzy ustawieniami lokalnymi komputera na których pracuje aplikacja a ustawieniami regionalnymi serwera bazy danych i parametry zawsze przekazane zostana jednoznacznie.
<code lang="C#">
SqlConnection conn = new SqlConnection(...); SqlCommand cmd= new SqlCommand(...);
cmd.CommandText = "SELECT COUNT(PLR_ID) FROM PL_REGISTRATIONS " + "WHERE (PLR_DATE >= @dataOd AND PLR_DATE <= @dataDo)"; cmd.CommandType = CommandType.Text; cmd.Connection = conn;
cmd.Parameters.Add("@dataOd", SqlDbType.DateTime); cmd.Parameters.Add("@dataDo", SqlDbType.DateTime);
cmd.Parameters["@dataOd"].Value = new DateTime(2006, 10, 13, 0, 0, 0); cmd.Parameters["@dataDo"].Value = new DateTime(2006, 10, 13, 23, 59, 59); ;
conn.Open(); SqlDataReader dataReader = cmd.ExecuteReader();
</code>
PS. Zastosowania tej metody powuje iz aplikacja tdo wywolania danego zapytania stosuje procedure SQL-owa o nazwie sp_executesql co dodatkowo zapewnia mi znaczne przyspieszenie wykonywania kolejnych powtarzajacych sie zapytan. -- ____________ Robert Winkler
Jacek Czapla - 13-11-2006 00:43
[OT] Re: MS SQL a Interbase format daty?
W czy używasz OLEDB? Kiedys próbowałem się dopiąć do MS SQL 2005 Express z BCB po oledb i nie chciało działąć. Nie pamiętam noże to jakas beta była tego serwera? Jeśłi piszesz w BCB lub w Delphi pod sql2005 Express to napisz co nie działa :).
-- *Jacek Czapla* //usuń ".pułapka" z adresu email www.ASIT.pl http://www.busyonline.pl - Rezerwacja miejsc w busach
Robert Winkler - 13-11-2006 00:44
> W czy używasz OLEDB? Kiedys próbowałem się dopiąć do MS SQL 2005 Express z BCB po oledb i nie chciało działąć. Nie pamiętam noże > to jakas beta była tego serwera? Jeśłi piszesz w BCB lub w Delphi pod sql2005 Express to napisz co nie działa :).
Wybacz, ale produkty Borlanda staram się od 10 lat olijać szerokim łukiem. (i wolalbym dla siebie zachować powody, gdyż nie chciałbym otwierać tu "świętej wojny")
A OLEDB korzystam w ASP i VB, czyli tak naprawde w obu przypadkach korzystam z systemowego Microsoft ActiveX Data Objects 2.x Library, i obiektów ADODB.Connection, ADODB.Command, ADODB.Parameter, ADODB.Recordset Tekst określajacy połączenie wygląda mniej wiecej następująco: "Provider=SQLOLEDB.1;Data Source=server;Initial Catalog=baza;Integrated Security=SSPI;" Z rozmów z innymi programistami więm ze wystepują problemy przy konwersji parametrów w przypadku połączenia opartego o ODBC. Należy więc zapomnieć o connectionStringu formatu: "Driver={SQL Server};Server=server;Database=baza;Trusted_Connec tion=yes;"
Przyznaje że rok temu gdy testował program z wersjami beta SQL 2005 to występowały problemy w przypadku OLEDB aplikacje .NET'owe korzytające z System.Data.SqlClient łączyły się bez problemu. aplikacje COM'owe, o nich mogłem zapomnieć. Z chwilą pojawienia się jednak wersji finalnej, znikneły wszystkie problemy jakie miałem wcześnij, widać feedback jaki Microsoft uzyskał w trakcie publicznych testów bety 1 i 2 oraz werji CTP coś dał. -- ____________ Robert Winkler
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
jak to =?ISO-8859-2?Q?zrobi=E6=2E=2E=2E=3F_TSQL_sql_server?==?ISO-8859-2?Q?_?=
=?iso-8859-2?Q?=5BMS_SQL=5D_Czy_mo=BFna_wywo=B3a=E6_funkcje_t ylko_raz_dla?==?iso-8859-2?Q?_ca=B3ego_zbioru_=BCr=F3d=B3owego=3F?=
[MSSQL] =?ISO-8859-2?Q?zgodno=B6ci_z_licencjami_Microsoft_?==?ISO-8859-2?Q?SQL_Server?=
Oracle PL/SQL Wstawianie =?ISO-8859-2?Q?wynik=F3w_kolekcji_d?==?ISO-8859-2?Q?o_tabeli?=
[MSSQL] ACCESS - SQL =?ISO-8859-2?Q?B=B3ad_w_konwersji_lic?==?ISO-8859-2?Q?zb?=
=?iso-8859-2?Q?=5Bmssql=5D_Zapytania_rekurencyjne__-_czy_sk=B3adnia_sql?==?iso-8859-2?Q?_co=B6_takiego_przewiduje_=3F?=
[Oracle PL/SQL] Cursor i zapis =?ISO-8859-2?Q?rekord=F3w_do_?==?ISO-8859-2?Q?kolejnych_plik=F3w?=
=?iso-8859-2?Q?=5BMySQL=5D_Co_minimalnie_potrzebne_zeby_mie=E 6_klienta_My?==?iso-8859-2?Q?SQL_na_Linuxie=3F?=
[oracle] - Oracle SQL Developer - co to jest SID?
=?ISO-8859-2?Q?[Oracle]_Wywo=B3anie_skryptu_sh_z_PL/SQL-a=3F=3F?=
zanotowane.pldoc.pisz.plpdf.pisz.plautwywalczyl.opx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|