selama saya ada waktu untuk mbantu, no-pe,
dari kasus anda gunakan UDF ini di sproc anda penganti fnGetDate:
CREATE FUNCTION fnDateEmptyToNull(
@DateToGet datetime
)
RETURNS varchar(10)
AS
BEGIN
DECLARE @GetDate varchar(10)
IF ISNULL(@DateToGet,' ') = ' '
SELECT @GetDate = NULL
ELSE
SELECT @GetDate = CONVERT (varchar, @DateToGet, 111)
RETURN @GetDate
END
Coba jalankan dari SQL Query Analyzer:
SELECT dbo.fnDateEmptyToNull(GetDate()) TglSekarang,
dbo.fnDateEmptyToNull(NULL) TglNull, dbo.fnDateEmptyToNull(' ')
TglKosong
Aksan Kurdin
--- In [email protected], "Heri Sumanto" <[EMAIL PROTECTED]>
wrote:
>
> --- In [email protected], "M. Aksan Kurdin"
> <aksan.kurdin@> wrote:
> sori mas aksan sebetulnya men set field tanggal ke value null sudah
> saya terapkan sebelum saya kirim ke mas aksan, dan berhasil tp saya
> pikir banyak sekali codingnya tapi bila function fgetdate itu
> disertakan diparameter maka hasilnya tetap sama yaitu 01/01/1900,
jd
> gimana ya ? maaf loh jadi merepotkan terus....
>
> > field tgl_stnk dan field tanggal lain di set allow null
> > cek semua parameter,kalau kosong ganti dengan null
> > baru lakukan update/insert dengan parameter yang sudah diperbaiki.
> >
> > IF ISNULL(@Tgl_STNK,' ') = ' ' SET @Tgl_Stnk = NULL
> > IF ISNULL(@Tgl_BPKB,' ') = ' ' SET @Tgl_BPKB = NULL
> > IF ISNULL(@tgl_transfer_bbn,' ') = ' ' SET @tgl_transfer_bbn =
NULL
> > IF ISNULL(@Ttd_bpkb,' ') = ' ' SET @Ttd_bpkb = NULL
> > IF ISNULL(@tgl_spp_bbn,' ') = ' ' SET @tgl_spp_bbn = NULL
> > IF ISNULL(@tgl_terbit_stnk,' ') = ' ' SET @tgl_terbit_stnk = NULL
> >
> > IF @IDP>0
> > BEGIN
> >
> > Update stnk set
> > No_STNK = @No_STNK,
> > Tgl_STNK = @Tgl_STNK,
> > No_BPKB = @No_BPKB,
> > Tgl_BPKB = @Tgl_BPKB,
> > tgl_transfer_bbn = @tgl_transfer_bbn,
> > Ttd_bpkb = @Ttd_bpkb,
> > No_ttd_BPKB = @No_ttd_BPKB,
> > tgl_spp_bbn = @tgl_spp_bbn,
> > bbn = @bbn,
> > Keterangan = @Keterangan,
> > tgl_terbit_stnk = @tgl_terbit_stnk,
> > id_birojasa = @id_birojasa
> > Where id_pengirim = @id_pengirim
> >
> > END
> > ELSE
> > begin
> > --bila stnk belum dinput
> > insert into stnk (
> >
>
id_pengirim,No_STNK,Tgl_STNK,No_BPKB,Tgl_BPKB,tgl_transfer_bbn,Ttd_bp
> k
> > b,
> >
No_ttd_BPKB,tgl_spp_bbn,bbn,Keterangan,tgl_terbit_stnk,id_birojasa,
> > tgl_created)
> > values
> >
>
(@id_pengirim,@No_STNK,@Tgl_STNK,@No_BPKB,@Tgl_BPKB,@tgl_transfer_bbn
> ,
> > @Ttd_bpkb,
> >
>
@No_ttd_BPKB,@tgl_spp_bbn,@bbn,@Keterangan,@tgl_terbit_stnk,@id_biroj
> a
> > sa,getdate())
> > end
> >
> >
> > aksan kurdin
> > --- In [email protected], "Heri Sumanto"
<heri_juan@>
> > wrote:
> > >
> > > terima kasih atas jawaban mas aksan, saya sudah coba jawaban
> yang
> > > pertama dan sukses tapi untuk jawaban kedua tentang tanggal,
> > > sepertinya tidak jalan, maksudnya semua data yang diinput
kosong
> > > tetap terisi 01/01/1900. Maaf selalu merepotkan..berikut saya
> > > sertakan penggalan codingnya, sbb:
> > >
> > > IF @IDP>0
> > > BEGIN
> > >
> > > Update stnk set
> > > No_STNK = @No_STNK,
> > > Tgl_STNK = dbo.fnGetDate(Tgl_STNK) ,
> > > No_BPKB = @No_BPKB,
> > > Tgl_BPKB = dbo.fnGetDate(@Tgl_BPKB),
> > > tgl_transfer_bbn = dbo.fnGetDate(@tgl_transfer_bbn),
> > > Ttd_bpkb = dbo.fnGetDate(@Ttd_bpkb),
> > > No_ttd_BPKB = @No_ttd_BPKB,
> > > tgl_spp_bbn = dbo.fnGetDate(@tgl_spp_bbn),
> > > bbn = @bbn,
> > > Keterangan = @Keterangan,
> > > tgl_terbit_stnk = dbo.fnGetDate(@tgl_terbit_stnk),
> > > id_birojasa = @id_birojasa
> > > Where id_pengirim = @id_pengirim
> > >
> > > END
> > > ELSE
> > > begin
> > > --bila stnk belum dinput
> > > insert into stnk (
> > >
> >
>
id_pengirim,No_STNK,Tgl_STNK,No_BPKB,Tgl_BPKB,tgl_transfer_bbn,Ttd_bp
> > >
> >
>
kb,No_ttd_BPKB,tgl_spp_bbn,bbn,Keterangan,tgl_terbit_stnk,id_birojasa
> > > ,tgl_created)
> > > values (@id_pengirim,@No_STNK,dbo.fnGetDate
> > > (@Tgl_STNK),@No_BPKB,dbo.fnGetDate(@Tgl_BPKB),dbo.fnGetDate
> > > (@tgl_transfer_bbn),dbo.fnGetDate
> > > (@Ttd_bpkb),@No_ttd_BPKB,dbo.fnGetDate
> > > (@tgl_spp_bbn),@bbn,@Keterangan,dbo.fnGetDate
> > > (@tgl_terbit_stnk),@id_birojasa,getdate())
> > >
> > > end
> > >
> >
>