Getdate() metodunda sadece tarih değeri girilmesi (Çözüldü)

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
kahraman1285
Üye
Mesajlar: 360
Kayıt: 10 Nis 2006 09:07

Getdate() metodunda sadece tarih değeri girilmesi (Çözüldü)

Mesaj gönderen kahraman1285 »

Merhaba

Tablomdaki tarih alanını default değer olarak getdate() olarak tanımladım ve ben her değer girdiğimde bu alan otomatik olarak tarih ve saat değeri giriliyor.

Fakat ben sadece tarih değerinin girilmesini istiyorum.Nasıl yapabilirim.
En son kahraman1285 tarafından 16 Eki 2007 09:55 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

Merhaba,
Tablodaki alan tipi Date ise sadece tarih girilebilir, ama sanırım sizin alantipi Datetime, konu bununla ilgili olsa gerek, kontrol edermisiniz.
Volkan KAMADAN
www.polisoft.com.tr
kahraman1285
Üye
Mesajlar: 360
Kayıt: 10 Nis 2006 09:07

Mesaj gönderen kahraman1285 »

volkan hocam

Ms sql server 2005 express edition kullanıyorum.
Bu sürümde sadece "Date" diye bir data tipi tanımlaması yok.

Sorunu başka bir şekilde çözmeliyim...

İlginiz için Teşekkürler...
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

SQL serverde sadece Date tipinde alan yok, ancak datetime tipinde tanımladığın alanında saati 00:00 olarak tutmasını sağlayabilirsin. Böylece saatten yaşayacağın sıkıntıyı yaşamazsın:

CAST(Floor(CAST(GETDATE() AS FLOAT)) AS DATETIME)
kahraman1285
Üye
Mesajlar: 360
Kayıt: 10 Nis 2006 09:07

Mesaj gönderen kahraman1285 »

Naile Hanım

Cevabınız için çok teşekkürler. Keşke foruma bi kaç gün önce bakıp cevabınızı okusaydım. :(

Çözüme yönelik bir cevap alamayınca ben de bugün sizin verdiğiniz koda göre daha iptidai bir yöntemle aynı sizin tavsiye ettiğiniz gibi saat değerini 00:00:00
yapan bir trigger yazarak sorunu geçici olarak çözmüştüm.

Tabii sizin yönteminizin daha profesyonel ve pratik ilginiz ve cavabınız için teşekkürler.

Benim çözüm için için kullandığım trigger ise: (Sağ elimle sol kulağımı göstermek gibi oldu ama :D )

Kod: Tümünü seç

USE [Restoran]
GO
/****** Object:  Trigger [dbo].[Tarih_Gir ]    Script Date: 10/15/2007 23:39:11 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER TRIGGER [dbo].[Tarih_Gir ]
   ON  [dbo].[satislar] 
   AFTER INSERT
AS 
declare @Gun varchar(3)
declare @Ay varchar(3)
declare @Yil varchar(4)
declare @Bugun varchar(20)
declare @BugunDate datetime
BEGIN

set @Gun=convert(varchar(3),day(getdate()))
set @Ay=convert(varchar(2),month(getdate()))
set @Yil=convert(varchar(4),year(getdate()))
set @Bugun=@ay + '.' + @gun + '.' + @Yil

set @BugunDate=convert(datetime,@Bugun)


update satislar
set tarih=@bugundate
where garson is null

	SET NOCOUNT ON;

    -- Insert statements for trigger here

END
Cevapla