MySQL'de para değerlerini depolamak için en iyi veri türü

Bir MySQL veritabanında çok sayıda kayıt saklamak istiyorum. Hepsi para değerleri içeriyor. Ancak her biri için kaç basamak ekleneceğini bilmiyorum.
Bu amaç için hangi veri türünü kullanmalıyım?
VARCHAR veya INT (veya diğer sayısal veri türleri)?

Çözüm

Paranın tam bir gösterime ihtiyacı olduğundan, float gibi yalnızca yaklaşık olan veri türlerini kullanmayın. Bunun için sabit noktalı sayısal bir veri türü kullanabilirsiniz, örneğin

decimal(15,2)
  • 15` hassasiyettir (ondalık basamaklar dahil değerin toplam uzunluğu)
  • 2` ondalık noktadan sonraki basamak sayısıdır

Bkz. MySQL Sayısal Türleri:

Bu türler, örneğin parasal veriler gibi kesin hassasiyetin korunmasının önemli olduğu durumlarda kullanılır.

Yorumlar (5)

DECIMALveyaNUMERIC` kullanabilirsiniz, her ikisi de aynıdır

DECIMAL ve NUMERIC türleri tam sayısal veri değerlerini saklar. Bu tipler, örneğin parasal verilerde kesin hassasiyetin korunması önemli olduğunda kullanılır. MySQL'de NUMERIC DECIMAL olarak uygulanır, bu nedenle DECIMAL ile ilgili aşağıdaki açıklamalar NUMERIC için de geçerlidir : MySQL

i.e. DECIMAL(10,2)

İyi okumalar

Yorumlar (4)

İhtiyacınıza göre değişir.

DECIMAL(10,2)kullanmak genellikle yeterlidir, ancak biraz daha kesin değerlere ihtiyacınız varsaDECIMAL(10,4)` ayarını yapabilirsiniz.

Büyük değerlerle çalışıyorsanız 10 yerine 19 yazın.

Yorumlar (2)