|
Hi all,
nak tanya kenapa bila I run coding ne dlm sql, output dia x betul
SELECT TARIKH_STR
FROM EMPLOYEE
WHERE (TARIKH_STR BETWEEN '01/01/2009' AND '31/01/2009')
output yg keluar caca marba ada yg tahun 2008,1999..etc
btw, field TARKH_STR ne type dia char(10).
tq .
Last edited by isms on 27-6-2013 09:17 AM
|
|
|
|
|
|
|
|
patek bukanlah arif sangat bab2 begini.. ramai lagi yang handal2 di luar sana.
cumanya char(10) itu ibarat seorang budak kecil yang dilepaskan kat dalam hutan belantara..
memang tidak akan jumpa jalan pulang ke rumah beliau.
philosophynya mudah saje.. char(10) dan date/datetime adalah dua entiti yang berlainan untuk mencari "tarikh di antara"
convert dahulu "TARIKH_STR" kepada date/datime kemudian barulah letakkan condition1 dan condition 2
|
|
|
|
|
|
|
|
orang_letrik posted on 26-6-2013 10:15 PM
patek bukanlah arif sangat bab2 begini.. ramai lagi yang handal2 di luar sana.
cumanya char(10) i ...
Tapi, saya pun try run field yg type dia datetime menggunakan SQL dia atas,
tp keluar mesej error "The conversion of char data type to a datetime data type resulted in an out-of-range datetime value"
|
|
|
|
|
|
|
|
SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;
|
|
|
|
|
|
|
|
Select * from tableName where convert(datetime,columname,103) between convert(datetime, Format(dtStartDate.Value, ,103) and convert(datetime, Format(dtendDate.Value,103) |
|
|
|
|
|
|
|
isms posted on 27-6-2013 09:24 AM
Tapi, saya pun try run field yg type dia datetime menggunakan SQL dia atas,
tp keluar mesej error ...
err, kalo dah field type datetime, untuk date between tu sila masukkan time sekali. contoh date 01/01/2009, taip '01/01/2009 00:00:00:000' .
Query dulu tengok macam mana data untuk field datetime tuh.
contoh -
select * from emp
where doc_date between '2012-01-01 00:00:00:000' and '2012-01-31 00:00:00:000'
p/s- x tau btl ke tak, try n error ja la.
|
|
|
|
|
|
|
|
Ye, betul tu, field yang ada date patut guna type date bukan char.
Lagi satu kalau nak query data date, kene ade between.
Harap membantu. |
|
|
|
|
|
|
|
bila main ngan 'date' dlm SQL, sumtimes mmg memeningkan.
mcm reply kt atas, kalo field utk simpan date, sebaiknya, field type pakai 'date/time'
biasa kita guna 'function date' utk cri beza antara dua date..
apa itu function date ?
secara ringkas, ia adalah built-in function dalam SQL utk proses date yg kita simpan dlm database.
cth function date yg ada... DateDiff, DateFormat.. bla.. bla.. bla
cth : http://www.w3schools.com/sql/sql_dates.asp
tambahan, jgn salah paham bahawa hanya utk date je ada built-in function..
utk benda lain yg kita simpan dlm d/base pun ada built-in function jugak.
tgk pd kesesuaian & kehendak output akhir, function apa yg kita nk guna.
|
|
|
|
|
|
|
|
kalau nak mudah. ni contoh dalam oracle
select *
from table a
where to_char(tarikh_mengawan, 'yyyymmdd') between '20130101' and '20130131' |
|
|
|
|
|
|
| |
|