Images

MySQL : Tutorial Menghitung selisih tanggal menggunakan fungsi DATEDIFF

Berikut ini akan saya share mengenai menghitung selisi tanggal menggunakan fungsi yang sudah terdapat di sintax SQL, biasanya para programmer membuat logika sendiri dibahasa pemograman yang mereka kuasai untuk menghitung selisi antara dua tanggal, jika mereka menggunkan RDBMS SQL padahal selisih tanggal sudah di sediakan di SQL, okey tanpa basa basi lagi mari kita coba :)

1. Buat terlebih dahulu tabel di database yang kita gunakan untuk menghitung selisih tanggal
mysql> create table data_tanggal (
    ->   id int auto_increment primary key,
    ->   tanggal date
    -> ) ;
2. Masukan data-data yang kita gunakan untuk mengitung selisih di table tersebut.
mysql> insert into data_tanggal (tanggal)
    -> values ('2013-01-01'), ('2013-02-01'), ('2013-03-01'), ('2013-04-01'), ('2013-07-01'), ('2013-08-01') ;
3. Nah sekarang kita tampilkan isi table
mysql> select * from data_tanggal ;
+----+------------+
| id |    tanggal        |
+----+------------+
|  1 | 2013-01-01 |
|  2 | 2013-02-01 |
|  3 | 2013-03-01 |
|  4 | 2013-04-01 |
|  5 | 2013-07-01 |
|  6 | 2013-08-01 |
+----+------------+
6 rows in set (0.00 sec)
4. untuk menggukan fungsi menghitung selisih di SQL gunakan DateDiff contohnya :
mysql> select id, tanggal
    -> , current_date() as tgl_sekarang
    -> , datediff(current_date(), tanggal) as selisih
    -> from data_tanggal ;
+----+------------+--------------+---------+
| id | tanggal            | tgl_sekarang | selisih      |
+----+------------+--------------+---------+
|  1 | 2013-01-01 | 2013-07-01   |     181     |
|  2 | 2013-02-01 | 2013-07-01   |     150     |
|  3 | 2013-03-01 | 2013-07-01   |     122     |
|  4 | 2013-04-01 | 2013-07-01   |      91      |
|  5 | 2013-07-01 | 2013-07-01   |       0       |
|  6 | 2013-08-01 | 2013-07-01   |     -31      |
+----+------------+--------------+---------+
6 rows in set (0.00 sec)
currentdate kita gunakan untuk menggambil tanggal sekarang, dan sintax datediff(current_date(), tanggal) maksudnya datediff(tanggalsekarang,tanggaldestinasi) menghitung selisih dari tanggal sekarang ke tanggaldestinasi.

5. Sekarang kita balik, bandingkan tanggal yang ada di dalam database dengan tanggal hari ini
mysql> select id, tanggal
-> , current_date() as tgl_sekarang
-> , datediff(tanggal, current_date()) as selisih
-> from data_tanggal ;
+----+------------+--------------+---------+
| id | tanggal    | tgl_sekarang | selisih |
+----+------------+--------------+---------+
|  1 | 2013-01-01 | 2013-07-01   |    -181 |
|  2 | 2013-02-01 | 2013-07-01   |    -150 |
|  3 | 2013-03-01 | 2013-07-01   |    -122 |
|  4 | 2013-04-01 | 2013-07-01   |     -91 |
|  5 | 2013-07-01 | 2013-07-01   |       0 |
|  6 | 2013-08-01 | 2013-07-01   |      31 |
+----+------------+--------------+---------+
6 rows in set (0.00 sec)

6, sekarang kita coba jika tanggal sekarangnya kita ubah sesuai kita inginkan misalnya tanggal 2013-5-20
mysql> select id, tanggal
-> , '2013-05-20' as tgl_sekarang
-> , datediff('2013-5-20', tanggal) as selisih
-> from data_tanggal ;
+----+------------+--------------+---------+
| id | tanggal    | tgl_sekarang | selisih |
+----+------------+--------------+---------+
|  1 | 2013-01-01 | 2013-05-20   |     139 |
|  2 | 2013-02-01 | 2013-05-20   |     108 |
|  3 | 2013-03-01 | 2013-05-20   |      80 |
|  4 | 2013-04-01 | 2013-05-20   |      49 |
|  5 | 2013-07-01 | 2013-05-20   |     -42 |
|  6 | 2013-08-01 | 2013-05-20   |     -73 |
+----+------------+--------------+---------+
6 rows in set (0.00 sec)

7, sekarang kita balik tanggaldestinasinya yang kita ubah sesuai kita inginkan 2013-05-20
mysql> select id, tanggal
-> , '2013-05-20' as tgl_sekarang
-> , datediff(tanggal, '2013-5-20') as selisih
-> from data_tanggal ;
+----+------------+--------------+---------+
| id | tanggal    | tgl_sekarang | selisih |
+----+------------+--------------+---------+
|  1 | 2013-01-01 | 2013-05-20   |    -139 |
|  2 | 2013-02-01 | 2013-05-20   |    -108 |
|  3 | 2013-03-01 | 2013-05-20   |     -80 |
|  4 | 2013-04-01 | 2013-05-20   |     -49 |
|  5 | 2013-07-01 | 2013-05-20   |      42 |
|  6 | 2013-08-01 | 2013-05-20   |      73 |
+----+------------+--------------+---------+
6 rows in set (0.00 sec)

Sekian tutorial dari saya, semoga apa yang saya bagikan dapat dimengerti ^_^ dan jadi ilmu yang bermanfaat untuk teman-teman Programmer. Salam...
Images

Delphi : Tutorial menyimpan gambar kedalam database SQL

Berikut ini akan saya share cara menyimpan gambar kedalam database RDBMS yg support SQL, ingat tutorial ini menyimpan langsung kedalam database bukan direktori gambar.



Oke untuk menyikap waktu kita siapkan terlebih dahulu table serta field-fieldnya di database yang kita gunakan untuk menyimpan gambar.

dalam kasus ini saya menggunakan RDBMS MySql, Buat terlebih dahulu databasenya
Database name : db_Gallery
Table name : Gallery
Field name : Nama, tipe : Varchar,  Length : 15
Filed name : Foto, tipe : Long Blob, Null ( Bisa juga pakai blob saja, dan ingat pakai null jika dikasus lain foto tidak diwajibkan di isi)

dalam Tutorial ini saya menggunakan Komponen koneksi menggunakan zeos untuk menghubungkan ke database,

1. kita buat button untuk mengload file gambar, kita menggukan 1 button, 1 komponen Image dan 1 opendialog
atur properti opendialog terlebih dahulu jadi defaultext : Jpg, Filter : Jpg|*.jpg ( ini untuk mengfilter file gambar jpg saja yg akan di tampilkan)

2. Code untuk mencari gambar dengan memanfaatkan opendialog
procedure TForm1.Button1Click(Sender: TObject);
begin
if opendialog1.Execute then
begin
image1.Picture.LoadFromFile(opendialog1.FileName);
end;
end;
3. Sebelum lanjut ke coding Simpan, tambahkan terlebih dahulu var stream : tmemorystream; dibawah procedure button simpan, berikut koding untuk menyimpan

procedure TForm1.Button2Click(Sender: TObject);
var stream : tmemorystream;
begin
stream := tmemorystream.Create;
image1.Picture.Graphic.SaveToStream(stream);
stream.Position := 0;
ZQuery1.Append;
ZQuery1.FieldByName('nama').AsString := edit1.text;
tblobfield(ZQuery1.fieldbyname('foto')).LoadFromStream(stream);
stream.Free;
ZQuery1.Post;
end;
4. untuk menampilkan gambar yang disimpan, kita manfaatkan komponen dbgrid, sebelumnya tambahkan uses Jpeg, dan var stream : tmemorystream; dan Jpg: TJpegImage; di procedure dbgrid cell click
procedure TForm1.DBGrid1CellClick(Column: TColumn);
var stream : tmemorystream;
Jpg: TJpegImage;
begin
Jpg := TJpegImage.Create;
stream := tmemorystream.Create;
tblobfield(ZQuery1.FieldByName('foto')).SaveToStream(stream);
stream.position := 0;
Jpg.LoadFromStream(stream);
image1.Picture.Graphic := Jpg;
Edit1.Text := ZQuery1.FieldByName('nama').AsString;
end;

Sekian tutorial dari saya mengenai menyimpan gambar kedalam database SQL
Source code, Exe dan Sql nya bisa download disini : Download