MSDE a set dataformat
Marcin - 29-11-2005 10:11
MSDE a set dataformat
Witam wszystkich mam jakiś taki dziwny problem z bazą danych.
Jak wpisuje date ręcznie do bazy np.: '2005-03-10' i sprawdzę
DECLARE @datevar datetime SET @datevar = '2005-03-10' SELECT @datevar GO
to jako wynik dostaję '2005-10-03' !!!!
Jak odpytam ustawienia :
dbcc useroptions
to mam,ze jezyk jest polski i format daty dmy. Jeśli teraz zrobię
SET DATEFORMAT dmy
to wszystko jest ok, ale tylko dla tej sesji. Jak zrobić żeby to działało zawsze?
Ptrzebuje tego żeby wywołac procedure z datą jako parametrem. Próbowałem zamknąć wszystko w innej procedurze gdzie najpierw usatwiam dataformat , ale nie działa :(
CREATE PROCEDURE spMoja-1 @data datetime AS SET NOCOUNT ON set dateformat ymd execute spMoja @data GO
Macie jakiś pomysł?
Pzdr Marcin
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
=?iso-8859-2?Q?Pawe=B3_Filipiak?= - 29-11-2005 10:11
Użytkownik "Marcin" <patin@poczta.onet.pl> napisał w wiadomości news:38a2.00000148.438b0399@newsgate.onet.pl... [...] > Macie jakiś pomysł?
przekazywać zmienną typu datetime, a nie string. Niejawne konwersje zawsze pachną problemami.
exec moja_procedura convert(datetime,'2005-10-01',120)
ostatni parametr wymusza format, w jakim trzeba podać datę - szczegóły w BOL
-- pozdrawiam, Paweł Filipiak, gg 2791867
Marcin Miga - 29-11-2005 10:11
Marcin wrote:
> Witam wszystkich > mam jakiś taki dziwny problem z bazą danych. > > Jak wpisuje date ręcznie do bazy np.: '2005-03-10' i sprawdzę > > > DECLARE @datevar datetime > SET @datevar = '2005-03-10' > SELECT @datevar > GO >
DECLARE @datevar datetime SET @datevar = '20050310' SELECT @datevar GO
to jako wynik dostaję '2005-03-10' !!!!
pozdrawiaMM -- Marcin M. Miga "More matter with less art"
Marcin - 29-11-2005 10:11
No widzisz, mam dwie instancje MSDE na róznych kompach. Na jednym jest ok, a na drugim źle. Ty trafiłeś że masz dobrze.
> Marcin wrote: > > > Witam wszystkich > > mam jakiś taki dziwny problem z bazą danych. > > > > Jak wpisuje date ręcznie do bazy np.: '2005-03-10' i sprawdzę > > > > > > DECLARE @datevar datetime > > SET @datevar = '2005-03-10' > > SELECT @datevar > > GO > > > > DECLARE @datevar datetime > SET @datevar = '20050310' > SELECT @datevar > GO > > to jako wynik dostaję '2005-03-10' !!!! > > pozdrawiaMM > -- > Marcin M. Miga > "More matter with less art" >
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Marcin Miga - 29-11-2005 10:11
Marcin wrote:
> No widzisz, mam dwie instancje MSDE na róznych kompach. Na jednym > jest ok, a na drugim źle. Ty trafiłeś że masz dobrze.
A zauważyłeś różnice pomiędzy Twoim zapytaniem, a moim? Moje było pozbawione '-', czyli data w formacie 'yyyymmdd'.
pozdrawiaMM -- Marcin M. Miga "More matter with less art"
Vez do Han - 29-11-2005 10:11
Użytkownik "Marcin" <patin@poczta.onet.pl> napisał w wiadomości news:38a2.00000148.438b0399@newsgate.onet.pl... > Witam wszystkich > mam jakiś taki dziwny problem z bazą danych. > > Jak wpisuje date ręcznie do bazy np.: '2005-03-10' i sprawdzę > > > DECLARE @datevar datetime > SET @datevar = '2005-03-10'
Tu dostajesz konwersję i to na dodatek niejawną
> SELECT @datevar > GO > > to jako wynik dostaję '2005-10-03' !!!!
Tu dostajesz wynik tak jak masz mieć domyślny format daty.
> > Jak odpytam ustawienia : > > dbcc useroptions > > to mam,ze jezyk jest polski i format daty dmy. > Jeśli teraz zrobię > > SET DATEFORMAT dmy > > to wszystko jest ok, ale tylko dla tej sesji. Jak zrobić żeby to działało > zawsze? >
działa zawsze - dla sesji :-)
> Ptrzebuje tego żeby wywołac procedure z datą jako parametrem. Próbowałem > zamknąć wszystko w innej procedurze gdzie najpierw usatwiam dataformat , ale > nie działa :(
?
> > CREATE PROCEDURE spMoja-1 @data datetime > AS SET NOCOUNT ON > set dateformat ymd > execute spMoja @data > GO
Jak wywołasz z parametrem typu datetime (a nie string) to będzie działało. Operacja set dateformat ymd jest niepotrzebna.
> > Macie jakiś pomysł?
Mamy. No dobrze a teraz na poważnie. Ten format daty jest związany z językiem logina. Żeby było trudniej jak ustawisz polski to masz format amerykański, a jak ustawisz angielski to masz... pobrany z ustawień regionalnych.
Marcin - 01-12-2005 20:33
I to jest odpowiedź której oczekiwałem, dzięki :)
> Użytkownik "Marcin" <patin@poczta.onet.pl> napisał w wiadomości > news:38a2.00000148.438b0399@newsgate.onet.pl... > > Witam wszystkich > > mam jakiś taki dziwny problem z bazą danych. > > > > Jak wpisuje date ręcznie do bazy np.: '2005-03-10' i sprawdzę > > > > > > DECLARE @datevar datetime > > SET @datevar = '2005-03-10' > > Tu dostajesz konwersję i to na dodatek niejawną > > > SELECT @datevar > > GO > > > > to jako wynik dostaję '2005-10-03' !!!! > > Tu dostajesz wynik tak jak masz mieć domyślny format daty. > > > > > Jak odpytam ustawienia : > > > > dbcc useroptions > > > > to mam,ze jezyk jest polski i format daty dmy. > > Jeśli teraz zrobię > > > > SET DATEFORMAT dmy > > > > to wszystko jest ok, ale tylko dla tej sesji. Jak zrobić żeby to działało > > zawsze? > > > > działa zawsze - dla sesji :-) > > > Ptrzebuje tego żeby wywołac procedure z datą jako parametrem. Próbowałem > > zamknąć wszystko w innej procedurze gdzie najpierw usatwiam dataformat , > ale > > nie działa :( > > ? > > > > > CREATE PROCEDURE spMoja-1 *@data *datetime > > AS SET NOCOUNT ON > > set dateformat ymd > > execute spMoja @data > > GO > > Jak wywołasz z parametrem typu datetime (a nie string) to będzie działało. > Operacja set dateformat ymd jest niepotrzebna. > > > > > Macie jakiś pomysł? > > Mamy. > No dobrze a teraz na poważnie. > Ten format daty jest związany z językiem logina. > Żeby było trudniej jak ustawisz polski to masz format amerykański, a jak > ustawisz angielski to masz... pobrany z ustawień regionalnych. >
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[MS SQL] "set names" (mySQL) w MS SQL
db2 alter table alter column set default
ustawianie uprawnien uzytkownika SQL 2005 serwer express ORAZ w msde
[MSSQL 2000 / MSDE] Select na podstawie TimeStampa
MSDE, MSSQL2005EE - problem z dostępem z innego komputera.
Skąd można jeszcze pobrać poczciwe i darmowe MSDE ?
MSDE jak zrobic attache database dla konkretnej instancji
Problem - MSDE i nazwa serwera (local)
MSDE katalog bazy danych Data
Jak szybko podłączyć bazę do MSDE/SQLServer
zanotowane.pldoc.pisz.plpdf.pisz.planette.xlx.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 |
|