Centrum Fanów Symulatorów » Hardware & Software » Sybase
Napisz nowy temat    Odpowiedz do tematu

Sybase

Idź do strony Poprzedni  1, 2
Autor Wiadomość
MaXyM


Dołączył: 17 Sie 2001
Posty: 6289
Miasto: Kraków GG:1905678

Post2005-05-13, 17:13      Sybase Odpowiedz z cytatem
Super ze ktos sie tu zna na tym h... tzn g...

To nastepne zadanie.
Jest sobie pole typu DATETIME. jak wiadomo uzywa ono 8bajtow do zapisu daty i czasu z dokladnoscia do tys. czesci sekundy.

Tylko ze SELECT datetime_field zwraca date formatowana do postaci human readable.. tyle ze bez tych ulamkow sekund.

convert (int, datetime_field) zwraca blad ze nie mozna explicite konwertowac datetime do inta (do numeric'a tez).

Toz q.. jak mam odczytac z bazy doklada wartosc pola datetime?
Nie musze dodawac ze w dokumentacji nic nie ma na ten temat. a w internecie znalazlem pytanie.. a zeby zobaczyc odpowiedz trzeba zaplacic. ehh
 
Reklamy
MaXyM


Dołączył: 17 Sie 2001
Posty: 6289
Miasto: Kraków GG:1905678

Post2005-05-17, 14:30      Sybase Odpowiedz z cytatem
A jescze jedna ciekawostka

Mam pole AAA typu TEXT.
I w niektorych rekordach sa NULLe jako zawartosc tego pola.
Jak zapytac sie o pole(a) AAA ktore maja NULL?

WHERE AAA = NULL
WHERE AAA IS NULL

sa niedozwolone dla pol typu TXT i IMAGE

Tylko ze
WHERE AAA LIKE NULL
nie zwraca rekordow maja pole AAA NULL

co ciekawe ani
WHERE AAA LIKE '%'
ani
WHERE AAA NOT LIKE '%'
nie zwroci tych rekordow.

To jak do q.. nedzy wylistowac wszystkie rekordy ktorych pola AAA sa NULL?
 
Yaper


Dołączył: 29 Sie 2002
Posty: 899
Miasto: Głowno - Warszawa

Post2005-05-27, 16:12      Sybase Odpowiedz z cytatem
Do walki z Transact SQLem polecam:
http://sybooks.sybase.com/onlinebooks/group-as/asg1251e/sqlug

Pierwszy problem rozwiazuje tak:
Kod:

select convert(char, getdate(), 109)

lub
Kod:

select convert(char, getdate(), 115)


Na drugi problem ciezko mi odpowiedziec bo typu TEXT nie uzywam.
 
MaXyM


Dołączył: 17 Sie 2001
Posty: 6289
Miasto: Kraków GG:1905678

Post2005-05-27, 18:21      Sybase Odpowiedz z cytatem
Sorry ale getdate zwraca date systemowa. a ja potrzbuje date zapisana w tabeli.

Do sybase'a mam cala dokumentacje. I szczerze mowiac jesli sie jej nie przeczyta od deski do deski to gowno mozna znalezc (PDF)

Dzis znalazlem kolejna smieszna rzecz... Porownywalem tabele. Musialem zrobic porownanie tabel po migracji bazy (dla pewnosci).
Problem w tym ze LIKE przyjmuje argument max 16kB...
Problem w tym ze ta akurat tabela niem a PK wiec musze wyciagac rekord po wszystkich danych jakie zaweira. No i dupa jak pole TEXT czy IMAGE jest wieksze...

ehh.

Przy okazji, nie mowie ze inne produkty sa lepsze bo w sumie nie robilem porownywalnych rzeczy (choc z checia bym porownal do MySQLa i pewnie by wyszedl z tego obronna reka). Jednak czasem niedociagniecia w sybase sa tak banalne ze czlowiek sie w ogole zastanawia po co taki produkt istnieje. Nawalili do niego JAVY ale standard nadal z roku '92. Kumpel z pracy sie cieszyl ze przechodzimy na ASE12 bo w v11 nie bylo mozna dropnac kolumny z tabeli... no wymiekam.
 
Yaper


Dołączył: 29 Sie 2002
Posty: 899
Miasto: Głowno - Warszawa

Post2005-05-27, 23:36      Sybase Odpowiedz z cytatem
Nie no Maxym to byl tylko przyklad
oczywiscie mozesz sobie wpisac:

select convert(char, <pole>, 109) from <tabela>

Mnie wkurza w SyBase to ze nie mozna dodac w tabeli kolumny przed inna kolumna tylko zawsze na koncu.
 
MaXyM


Dołączył: 17 Sie 2001
Posty: 6289
Miasto: Kraków GG:1905678

Post2005-06-20, 10:55      Sybase Odpowiedz z cytatem
Yaper, no wiesz.. za duzo bys chcial. To tylko SQL92... ja p.. 13 lat...
I tak dobrze ze mozesz w ogole dodac kolumne bo w ASE 11 to nie bylo w ogole mozliwe.

A teraz nastepny LOL.
Kolumna tabeli typu identity. powiedzmy

id int identity

teraz robimy:

alter table ... change id short

i co? i nie ma identity.
Zaraz powiesz no jak.. a gdzie definicja identity w alter table? no to odpowiem. Nie da sie dodac identity w alter table.

chyba napisze ksiazke: 101 loli o sybase.
 
Centrum Fanów Symulatorów » Hardware & Software » Sybase Idź do strony Poprzedni  1, 2
Napisz nowy temat  Odpowiedz do tematu
Skocz do: