none
SQL Tarih Kolonların Formatını Değiştirme RRS feed

  • Soru

  • Arkadaşlar Sql Daha Önce den Girilmiş Olan Tarih Kolonlarına Sınırlama Yapılmamış Farklı Formatlarda Tarih Eklenmiş ve Tarih Sayısı Çok Fazla Tüm Kolonu Tek Bir Seferde Datetime Göre Veriler Bozulmadan Degiştirebilirmiyiz 
    20 Şubat 2020 Perşembe 17:00

Yanıtlar

Tüm Yanıtlar

  • Tarih girilen kolonlar zaten DateTime degil mi, farklı formatlardan kastıniz nedir (varchar filan mi, ornekler?)



    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.

    20 Şubat 2020 Perşembe 17:56
  • Çetin Bey Varchar Olarak Ayarlamışlar Şimdi Değişiklik İstiyor Ama Önce Bunu Çözmem lazım
    20 Şubat 2020 Perşembe 20:14
  • Ornekler?

    Hepsi belli bir formata uyuyorsa kolay.

    (Tabloyu boyle tasarlayan DBA'ya tek tek düzelttirmek en iyisi aslinda:) 



    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.

    20 Şubat 2020 Perşembe 20:25
  • Aşagıdaki Gibi Rastgele Girmişler Tek Formatta toplamak Lazım 

    29.09.2003
    05/06/2003
    09.09.2003
    12.06.2003
    15/11/2006
    01.07.2003
    17.07.2003
    09.09.2003
    01.07.2003
    18.09.2002
    __/__/____
    26.03.2002
    23.06.2003
    __/__/____
    __/__/____
    09.07.2001

    20 Şubat 2020 Perşembe 20:50
  • Butun bu tarihlerin gun/ay/yil formatında oldugundan eminseniz kolay:

    create table Tarihler (tarih varchar(20));
    insert into Tarihler (tarih) values
    ('29.09.2003'),
    ('05/06/2003'),
    ('09.09.2003'),
    ('12.06.2003'),
    ('15/11/2006'),
    ('01.07.2003'),
    ('17.07.2003'),
    ('09.09.2003'),
    ('01.07.2003'),
    ('18.09.2002'),
    ('__/__/____'),
    ('26.03.2002'),
    ('23.06.2003'),
    ('__/__/____'),
    ('__/__/____'),
    ('09.07.2001'),
    ('  /  /    ');
    
    alter table Tarihler add yeni_tarih date null;
    update [Tarihler] 
     set yeni_tarih = try_convert(date, tarih, 103);
     
    select * from [Tarihler];
    
    
    
    



    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.

    20 Şubat 2020 Perşembe 21:34
  • Çetin Bey gun/ay/yil formatındamı Bilmiyorum Ama Büyük İhtimalle Öyle Olması Lazım Emin Değilim 15 000 Den Fazla Kayıt Var Nasıl Olacak
    20 Şubat 2020 Perşembe 23:52
  • Emin degilseniz, emin olan birisine sormanız lazım. 29/09/2003 gibi tarihlerde sorun yok, onların gun/ay/yil olduğu belli. 05/06/2003 ise, genele bakınca, %99.9 gun/ay/yildir ve 5 Haziran 2003'tur. Bir ihtimal 6 Mayıs 2003 olabilir (metin olarak yazmanın dertlerinden birisi). Sonuçta bir insan gozuyle de onun gun/ay/yil olduguna karar vereceksiniz sanırım (öyle olmaması çok büyük sürpriz olur). 


    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.

    21 Şubat 2020 Cuma 00:01
  • Çetin Hocam'a katılıyorum. Ek olarak, sürekli standart bir formatta da veritabanına yazılmamış olabilir. Örneğin bir kayıt gün/ay/yıl diğer kayıt (herhangi) ay/gün/yıl olabilir. Bunu belirlemek zor. Standart olarak gün/ay/yıl formatına aktaracaksanız, Çetin hocamın da dediği gibi yeni bir kolon açarak, eski kolondaki verileri kopyalayabilirsiniz.

    UPDATE TabloAdiniz SET YeniKolonAdi = convert(datetime, EskiKolonAdi, 103)


    İletişim

    21 Şubat 2020 Cuma 06:56
  • Çetin Hocam'a katılıyorum. Ek olarak, sürekli standart bir formatta da veritabanına yazılmamış olabilir. Örneğin bir kayıt gün/ay/yıl diğer kayıt (herhangi) ay/gün/yıl olabilir. Bunu belirlemek zor. Standart olarak gün/ay/yıl formatına aktaracaksanız, Çetin hocamın da dediği gibi yeni bir kolon açarak, eski kolondaki verileri kopyalayabilirsiniz.

    UPDATE TabloAdiniz SET YeniKolonAdi = convert(datetime, EskiKolonAdi, 103)


    İletişim

    Barış,

    Merhaba. Convert() çeviremediklerinde hata verir ve işlemi iptal eder, o yüzden ben try_convert kullanmıştım :)



    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.

    21 Şubat 2020 Cuma 12:55
  • Konumuzun Biraz Dışında Olacakta Başka Bir Şeyde Takıldım Datetimepicker de İf ile Tıklandımı Kontrolünü Nasıl Yapabilirim Tıkladıgı Zaman Tarih Seçilince if le Nasıl Kontol Edebilrim Hangi Properties de Bu Var 
    21 Şubat 2020 Cuma 19:10
  • Fazla disinda, sanırım bu konuyu artık kapatabilrsiniz.

    dtp.Click

    dtp.MouseClick

    dtp.ValueChanged

    ... bir suru eventi var, artık tam olarak ne yapmak istediğinize gore karar verirsiniz.

    Not: Umarim gene string olarak saklamak icin lazım degildir.



    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    21 Şubat 2020 Cuma 19:15
  • Arama İşlemi İçin Kullanacam Ama if kontrolünde event bulamadım çünkü bir buton ile birden fazla aynı anda sorgu gerekiyor ama tabi tek buton olunca arama işleminde datetimepicker hangi event ile tetikleme gerekiyor 

    dtp.ValueChanged ve click eventları yokproperty yok 

    sql de aşagıdaki hatayı aldım 

    Msg 195, Level 15, State 10, Line 1
    'try_convert' is not a recognized built-in function name.

    update Davalar set Tarihler = try_convert(date, tarih, 103);


    21 Şubat 2020 Cuma 19:27
  • Hangi SQL Server versiyonu bu? 2016 ve sonrasında var. 

    DateTimePicker'da dediğim gibi, Click, MouseClick, ValueChanged eventleri ve daha fazlası var. If ile nesini kontrol edeceğinizi ise anlamadım.



    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.

    21 Şubat 2020 Cuma 20:15
  • Çetin Hocam Arama İşlemi Yapılacak Tarih Seçilirse İf Koşulunda İşlem Yapılsın Seçilemişse Hiç Bişe Yapmasın ve İşlem Bittiginde Tekrar Seçilmemiş Gibi Deger Olsun Çünkü Bir Sonraki Aramada Hata Alırız 

    sql 2017 Sürümü Sorunu Çözdüm Versionu Degiştirdim Lakin Aşagıdaki Hatayı aldım 

    The conversion of a date data type to a datetime data type resulted in an out-of-range value.

    The statement has been terminated.

    21 Şubat 2020 Cuma 20:29
  • Ben hala DateTimePicker ile if ve tiklama ilgisini anlayamadım (kod yok ortada, belki de ondan).

    Niye DateTime'a çevirdiğinizi de anlamadım. DateTime'a çevirmeniz gerekiyorsa, degerlerin 1753 oncesi olamayacagini unutmayın. DateTime2 tercih edin o zaman da, 1/1/0001'e kadar kullanabilirsiniz.



    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.

    21 Şubat 2020 Cuma 21:11
  • Çetin Hocam aşagıdaki Kod Çalışıyor Sadece Datetime Picker Tıklanma Olayı Lazım Ama Properties De Uygun Bulamadım if Koşulunda Çünkü Tarih Seçerse İşlem Yapsın seçmezse Hiç Bir İlem Yapmasın Aşagıdaki Kod Mantıgımı anlatıyor

    Datetime Çevirme Sebebim Arama İçin Yapmam Gerekiyor Text Olarak Arama Yapmamız Laızm O Zaman 2 Tarih Arasında Arama Yaptırıyorum

     private void btnBul_Click(object sender, EventArgs e)

            {

                
                if (rdoTus.Checked)
                {
                    Davalar d = new Davalar();
                    if (string.IsNullOrEmpty(txtDno.Text)) { } //d.dno = "NULL";
                    else
                    {
                        d.dno = txtDno.Text;
                        dataGridView1.DataSource = DavaORM.DavaDosyaNoAra(d);
                        Tables.DataGridViewDavaAra(dataGridView1);
                        lblToplam.Text = "Toplam Kayıt Sayısı :" + ToplamDava().ToString();

                    }

                    if (string.IsNullOrEmpty(txtMuAd.Text)) { } // d.muvad = "NULL";
                    else
                    {
                        //Davalar d = new Davalar();
                        d.muvad = txtMuAd.Text;
                        dataGridView1.DataSource = DavaORM.DavaMuvAdAra(d);
                        Tables.DataGridViewDavaAra(dataGridView1);
                        lblToplam.Text = "Toplam Kayıt Sayısı :" + ToplamDava().ToString();
                    }

                    if (string.IsNullOrEmpty(txtEno.Text)) { }  //d.esasno = "NULL";
                    else
                    {
                        // Davalar d = new Davalar();
                        d.esasno = txtEno.Text;
                        dataGridView1.DataSource = DavaORM.DavaEsasNoAra(d);
                        Tables.DataGridViewDavaAra(dataGridView1);
                        lblToplam.Text = "Toplam Kayıt Sayısı :" + ToplamDava().ToString();
                    }

                    if (string.IsNullOrEmpty(txtKno.Text)) { }   //d.kararno = "NULL";
                    else
                    {
                        //Davalar d = new Davalar();
                        d.kararno = txtKno.Text;
                        dataGridView1.DataSource = DavaORM.DavaKararNoAra(d);
                        Tables.DataGridViewDavaAra(dataGridView1);
                        lblToplam.Text = "Toplam Kayıt Sayısı :" + ToplamDava().ToString();
                    }

                    if (string.IsNullOrEmpty(txtMuSoy.Text)) { }  //d.muvsoy = "NULL";
                    else
                    {
                        // Davalar d = new Davalar();
                        d.muvsoy = txtMuSoy.Text;
                        dataGridView1.DataSource = DavaORM.DavaMuvSoyAra(d);
                        Tables.DataGridViewDavaAra(dataGridView1);
                        lblToplam.Text = "Toplam Kayıt Sayısı :" + ToplamDava().ToString();
                    }

                    if (string.IsNullOrEmpty(txtMno.Text)) { }  //d.mahno = "NULL";
                    else
                    {
                        // Davalar d = new Davalar();
                        d.mahno = txtMno.Text;
                        dataGridView1.DataSource = DavaORM.DavaMahNoAra(d);
                        Tables.DataGridViewDavaAra(dataGridView1);
                        lblToplam.Text = "Toplam Kayıt Sayısı :" + ToplamDava().ToString();
                    }

                    if (cboMah.SelectedIndex == 0) { }   //d.mahkadi = "NULL";
                    else
                    {
                        // Davalar d = new Davalar();
                        d.mahkadi = cboMah.Text;
                        dataGridView1.DataSource = DavaORM.DavaMahAdAra(d);
                        Tables.DataGridViewDavaAra(dataGridView1);
                        lblToplam.Text = "Toplam Kayıt Sayısı :" + ToplamDava().ToString();
                    }

                    if (string.IsNullOrEmpty(txtKarAd.Text)) { } // d.karsiad = "NULL";
                    else
                    {
                        // Davalar d = new Davalar();
                        d.karsiad = txtKarAd.Text;
                        dataGridView1.DataSource = DavaORM.DavaKarsiAdAra(d);
                        Tables.DataGridViewDavaAra(dataGridView1);
                        lblToplam.Text = "Toplam Kayıt Sayısı :" + ToplamDava().ToString();
                    }

                    if (string.IsNullOrEmpty(txtKSoy.Text)) { }   //d.karsisoy = "NULL";
                    else
                    {
                        //  Davalar d = new Davalar();
                        d.karsisoy = txtKSoy.Text;
                        dataGridView1.DataSource = DavaORM.DavaKarsiSoyAra(d);
                        Tables.DataGridViewDavaAra(dataGridView1);
                        lblToplam.Text = "Toplam Kayıt Sayısı :" + ToplamDava().ToString();
                    }

                    if (string.IsNullOrEmpty(txtTarih1.Text)) { }  //d.tarih = "NULL";
                    else
                    {
                        // Davalar d = new Davalar();
                        d.tarih = txtTarih1.Text;
                        d.tarih2 = txtTarih2.Text;
                        dataGridView1.DataSource = DavaORM.DavaTarihAra(d);
                        Tables.DataGridViewDavaAra(dataGridView1);
                        lblToplam.Text = "Toplam Kayıt Sayısı :" + ToplamDava().ToString();
                    }

                    if (string.IsNullOrEmpty(txtYer.Text)) { }  //d.yer = "NULL";
                    else
                    {
                        // Davalar d = new Davalar();
                        d.yer = txtYer.Text;
                        dataGridView1.DataSource = DavaORM.DavaYerAra(d);
                        Tables.DataGridViewDavaAra(dataGridView1);
                        lblToplam.Text = "Toplam Kayıt Sayısı :" + ToplamDava().ToString();
                    }

                    if (string.IsNullOrEmpty(txtBilgi.Text)) { }   //d.noti = "NULL";
                    else
                    {
                        //Davalar d = new Davalar();
                        d.noti = txtBilgi.Text;
                        dataGridView1.DataSource = DavaORM.DavaBilgiAra(d);
                        Tables.DataGridViewDavaAra(dataGridView1);
                        lblToplam.Text = "Toplam Kayıt Sayısı :" + ToplamDava().ToString();
                    }

                    if (dateTimePicker1)
                    {
                        MessageBox.Show("deneme");
                    }
                }


            }


    21 Şubat 2020 Cuma 21:36
  • Fazla uzun geldi okuyamadım. DateTimePicker'da CheckBox var, onunla null destekliyor. 

    void Main()
    {
    	Form f = new Form { Text = "Ornek", Height = 250, Width = 500 };
    	DateTimePicker dtp = new DateTimePicker { Left = 10, Top = 10, ShowCheckBox = true };
    	Button b = new Button { Left = 10, Top = 50, Text = "Kontrol" };
    	TextBox t1 = new TextBox { Left = 10, Top = 100, Width = 200, ReadOnly = true };
    	TextBox t2 = new TextBox { Left = 10, Top = 150, Width = 200, ReadOnly = true };
    	f.Controls.AddRange(new Control[] { dtp, b, t1, t2 });
    
    	b.Click += (sender, args) =>  {
    	  DateTime? gun = dtp.Checked ? dtp.Value.Date : (DateTime?)null;
    	  t1.Text = $"{gun}";
      	};
    
    	dtp.ValueChanged += (sender, args) => {
    	  DateTime? gun = dtp.Checked ? dtp.Value.Date : (DateTime?)null;
    	  t2.Text = $"{gun}";
      	};
    
    	f.Show();
    }
    



    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.

    22 Şubat 2020 Cumartesi 14:55
  • Çetin Hocam Sql de tabloya sag tıkladıgmızda Edit Top 200 Rows Sadece İlk 200 kayıt geliyor elle düzelmek için 15000 kaydı burada nasıl listeletebiliyoruz 
    22 Şubat 2020 Cumartesi 20:23
  • Kod yazarak. Yukarıda ornek yazmistim. Elle düzeltmekten kasit, satir satir elle yazmaksa, onu hiç yaxamdigimdan bilemem. Ben hep kod yazarak goruyorum isimi, data operatörlerinin isi öyle elle girmek, onlara sormak lazım.


    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.

    • Yanıt Olarak İşaretleyen Caner KORKMAZ 7 Mart 2020 Cumartesi 19:59
    22 Şubat 2020 Cumartesi 21:04
  • Sorun Çözülmüştür 
    2 Mart 2020 Pazartesi 17:46