2x
[ Szerkesztve ]
Hali, van egy date típusú mezőm.
Pl 2011.04.25. 00:00:00'
Ebből szeretném az óra perc-et kinyerni. Milyen megoldás van rá? SUBSTR-el csak a dátumot írja ki és azt se olyan formába ahogy kellene...
Esetleg: date('H:m', $datum);
"hacsak nem jön a jó tündér break utasítás képében..."
hogy erted, hogy csak a datumot es azt sem olyan formaban?
amugy substr( 16 ), ha nem szamoltam el
Politikailag korrekt, valamint munkahely- és gyermekbarát aláírás, amiben egyáltalán nincsen p*na.
Szerintem a DATE_FORMAT sql-függvény tökéletes erre.
[ Szerkesztve ]
---------------------
dupla
[ Szerkesztve ]
Ha meg Oracle SQL:
to_char(datum,'HH:MM')
[ Szerkesztve ]
SQL navigátor nem is emeli ki úgy mint függvényt, mint a TO_DATE-et.
De ennek így jónak kellene lennie nem
DATE_FORMAT('2011.04.12. 00:00:00','%H:%i')
WonderCSabo: ok ránézek
[ Szerkesztve ]
thx megvan
Persze valszeg HH24 kell Neked.
Igen, azt már tudtam magamtól is
Oké.
üdv
Access-be van egy táblám, amiben az egyik szöveg típusú mezőben dátumok vannak tárolva 'yyyy.mm.dd' (nincs pont a végén) formában. Van egy másik táblám, az abban lévő dátum mező rendes dátum formátumban van 'yyyy.mm.dd.' formában.
Ezt a két mezőt nekem össze kéne kapcsolnom, de így nem működik. Hogy tudnám ezt megoldani?
előre is kösz!
konvertálod a szöveget dátummá, vagy a dátumot szöveggé.
Mondjuk valahogy így: Format([Date], "yyyymmdd")
Én kérek elnézést!
köszi, sikerült
Sziasztok
Egy kis SQL query-s segítségre lenne szükségem.
Adott egy tábla amiben van egy id meg egy value oszlop. A feladat az lenne, hogy az azonos id-khoz tartozó value értékeket adja össze a query és én csak a végét kapjam meg.
Pl
id value
1 0,38
1 0,01
1 0,38
1 0
1 0,14
1 0,02
1 0
1 0
1 0
value=0.93 - ezt szeretném megkapni
üdv sonar
A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!
select sum(value) value from tabla group by id;
Egyébként ez a tábla nem igazán jó: kéne lenni kulcs-nak, és annak egyértelműen az ID-nek kéne lennie, de ugye itt sok azonos ID van, tehát az kulcs nem lehet...
[ Szerkesztve ]
Sziasztok!
Lenne egy PL/SQL gondom a dátum formátummal, és nem értme miért nem jó...
Így deklarárolom :
DECLARE
v_date DATE:=TO_DATE('&sv_user_date', 'DD-MON-YYYY');
Így adom be: 05-JUN-2005 , és mindig ORA-01843 not a valid month üzenetet kapok. De miért? Ha a formátumot 'DD-MONTH-YYY'változtatom, akkor is ez az üzenet. Viszont, ha '
DD-MM-YYYY', tehát számmal írom be a hónapot, akkor jó. Mi lehet a gond az előző 2 esetben?
to_char mit dob erre, ha kiíratod vele a sysdate-et:
to_char(sysdate,'DD-MON-YYYY')
Vagy kérdezhetném azt is, hogy mi az nls_lang:
select DECODE(parameter, 'NLS_CHARACTERSET', 'CHARACTER SET',
'NLS_LANGUAGE', 'LANGUAGE',
'NLS_TERRITORY', 'TERRITORY') name,
value from v$nls_parameters
WHERE parameter IN ( 'NLS_CHARACTERSET', 'NLS_LANGUAGE', 'NLS_TERRITORY')
Thank you to god for making me an atheist
Csak a könnyebb érthetőség miatt egyszerűsítettem, természetesen nem egyedi kulcsról van szó.
A query-t meg majd este fele próbálom.
A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!
Szia!
1. A hiba azonos, ORA-01843: not a valid month
2.
LANGUAGE HUNGARIAN
TERRITORY HUNGARY
CHARACTER SET AL32UTF8
Ja, azt elfeledtem ,hogy ORACLE XE 10g megy
Mivel magyar, ezért ezzel megy:
TO_DATE('05-JÚN.-2005', 'DD-MON-YYYY')
vagy TO_DATE('05-JUN-2005', 'DD-MON-YYYY','nls_date_language = ENGLISH')
vagy alter session nls[paraméterek]
vagy init.ora-ban beállítani.
Thank you to god for making me an atheist
Köszi szépen!
NA ez megoldódott, viszont lett egy újabb probléma
Próbáltam futtatni egy scriptet, de a mérete nagyobb ,mint a quota. Sehogy nem bírtam átállítani Van ötleted?
Milyen script, pontosan hol futtatod (kliens) és milyen limitbe ütköztél bele (hibaüzenet, kód)?
Thank you to god for making me an atheist
Egy scrript ami felépít egy egyszerűbb adatbázist, csak az a baj, hogy 650 Kb, és az apex -ben mikor megnyitom (webes kezelője az XE-nek) a scriptet akkor "The script exceeds the maximum size allowed." , Limit 500kb. S
Hű nem tudom, nincs közelemben XE példány. SQL*Plus-szal is megvan ez a limitáció ?
szerk: Ha nincs más megoldás, nem tudod szétkapni a scriptet ?
[ Szerkesztve ]
Thank you to god for making me an atheist
Hát igen, SQL * PLUS-ban nincs ez a limitáció, ott simán ment. Csak gondoltma hátha vna valami megoldás arra is Köszi szépen.
Müxik, már csak a vb6 vs access között kell finom hangolni a dolgot, mert momentán csak az első értéket kapom meg pedig 26 szummának kellene lenni.
A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!
Léptesd a recordsetet vagy elrontottad a pofonegyszerű SQL-t.
Én kérek elnézést!
csak az a baj,hogy arra is error-t dob.
Lekértem a count-ot az meg azt mondja, hogy 1.
A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!
szerintem ez apex oldali limit, nem adatbázis....
=Kilroy was here============================ooO=*(_)*=Ooo=======
Helyesen a lekérdezés:
select id,sum(value) value from tabla group by id;
=Kilroy was here============================ooO=*(_)*=Ooo=======
Tudom
A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!
[link]...
Szerintetek ez miért nem fut le?
SET SERVEROUTPUT ON;
DECLARE
v_instructor_id NUMBER := &inst_id;
v_course_numb NUMBER;
v_first name instructor.first_name%TYPE;
v_last name instructor.last_name%TYPE;
BEGIN
SELECT COUNT(s.instructor_id), i.first_name, i.last_name
INTO v_course_numb, v_fist_name, v_last_name
FROM section s, instructor i
WHERE s.instructor_id = v_instructor_id;
if v_course_numb >= 3 THEN
DBMS_OUTPUT.PUT_LINE('The instructor ' || v_first_name );
ELSE
DBMS_OUTPUT.PUT_LINE('The instructor ' ');
END IF;
DBMS_OUTPUT.PUT_LINE('Done...');
END;
.
/
ORA-06550: line 4 coloumn 16
PLS-00103 : Encountered the simbol "INSTRUCTOR" when expecting one of the following :
:= , ( @ .....stb...
A v_first változó típusa instructor.first_name%TYPE, az a name nem kell oda.
[ Szerkesztve ]
Ha ezt másoltad, akkor több hiba is van. Alulhúzás hiányzik 2 helyen, illetve egy r betű.
WonderCSabo: de kell, a változó deklarációból kimaradt az alulhúzás.
[ Szerkesztve ]
Jester
Már látom, a kód többi részében télleg van.
Igen, valóban. Pedig átnéztem, de úgy látom ,hogy ez elkerülte a figyelmem. Köszönöm mindkettőtöknek. Az SQL parancsból egy GROUP by is hiányzot, ezt pótoltam de valamiért nem jó.
SELECT COUNT(s.instructor_id), i.first_name, i.last_name
INTO v_course_numb, v_first_name, v_last_name
FROM section s, instructor i
WHERE s.instructor_id = v_instructor_id
GROUP BY s.instructor_id;
Hiba:
ORA-00979: not a GROUP BY expression
De miért?
GROUP BY s.instructor_id, i.instructor_id; ?
Az i.first_name, i.last_name akkor sem lesz kiválasztható.
Jester
azért mert egy oszlopra nem mondhatsz egyszerre GROUP BY-t meg oszlopfüggvényt is, és a másik 2 oszloppal is kezdeni kellene valamit
Teljesen igazatok van... Nem figyeltem.
Igen, én sem. Köszönöm, így már jó:
SELECT COUNT(s.instructor_id), (SELECT first_name FROM instructor WHERE instructor_id=v_instructor_id), (SELECT last_name FROM instructor WHERE instructor_id=v_instructor_id)
INTO v_course_numb, v_first_name, v_last_name
FROM section s
WHERE s.instructor_id = v_instructor_id
GROUP BY s.instructor_id ;
A group by-t nem arra az oszlopra kell, amire a függvényt használod, hanem amire csoportosítani akarsz:
SELECT COUNT(s.instructor_id), i.first_name, i.last_name
INTO v_course_numb, v_first_name, v_last_name
FROM section s, instructor i
WHERE s.instructor_id = v_instructor_id
GROUP BY i.first_name, i.last_name;
Nem tudom melyik adatbázis kezelőn használod, de jó, ha tudod, ha a count-on belül használsz oszlopnevet, akkor annak "null" értéke esetén elképzelhető, hogy nem összegzi az a sort. Ha az összes sort akarod számolni pontosabb ez a kód:
SELECT COUNT(*), i.first_name, i.last_name
INTO v_course_numb, v_first_name, v_last_name
FROM section s, instructor i
WHERE s.instructor_id = v_instructor_id
GROUP BY i.first_name, i.last_name;
Ha jól emlékszem Oracle-nél ez mindegy.
=Kilroy was here============================ooO=*(_)*=Ooo=======
Biztos jó ötlet név szerint csoportosítani? Mi van, ha van két azonos nevű oktató... A count-al meg sztem az oktatók óráinak számát akarja számoltatni, tehát a táblában hányszor fordulnak elő az azonos instuctor_id-k.
gaben: A 2. két select-et összevonhatod.
[ Szerkesztve ]
Gyanús ez így már próbáltam ,de kipróbáltam, hátha elírtma vmit és nem fut le. ORA-01422: exact fetch returns more than requested number of rows
a lekérdezésed több sort is visszaad, a SELECT INTO Oracle-ben pedig 1 sort vár
Igazad van, szemantikailag nem néztem, csak a szintaktikát.
Most látom, hogy a két táblát nem is kapcsolta össze, így ez hibás eredményt fog adni.
Én így csinálnám.
SELECT s.instructor_id,i.first_name, i.last_name,COUNT(*)
INTO v_dummy,v_first_name, v_last_name,v_course_numb
FROM section s, instructor i
WHERE s.instructor_id = i.instructor_id
and s.instructor_id=v_instructor_id
GROUP BY s.instructor_id,i.first_name, i.last_name;
Mondjuk könnyebb lenne, ha tudnánk mi a feladat, és a két tábla szerkezete...
[ Szerkesztve ]
=Kilroy was here============================ooO=*(_)*=Ooo=======