Decimal SQL là gì

Tôi đang cố gắng tìm ra kiểu dữ liệu thập phân của một cột trong Máy chủ SQL. Tôi cần có thể lưu trữ các giá trị như 15,5, 26,9, 24,7, 9,8, v.v.

Tôi đã gán decimal(18, 0)cho kiểu dữ liệu cột nhưng điều này không cho phép tôi lưu trữ các giá trị này.

Cách đúng đắn để làm điều này là gì?

DECIMAL(18,0) sẽ cho phép 0 chữ số sau dấu thập phân.

Sử dụng một cái gì đó như DECIMAL(18,4)thay vào đó nên làm tốt!

Điều đó cung cấp cho bạn tổng cộng 18 chữ số , 4 trong số đó sau dấu thập phân (và 14 trước dấu thập phân).

Bạn nên sử dụng như sau: DECIMAL(m,a)

m là tổng số chữ số mà số thập phân của bạn có thể có.

a là số chữ số tối đa bạn có thể có sau dấu thập phân.

http://www.tsqltutorials.com/datatypes.php có các mô tả cho tất cả các kiểu dữ liệu.

Các cài đặt cho Decimalđộ chính xác và tỷ lệ của nó hoặc theo ngôn ngữ bình thường, một số có thể có bao nhiêu chữ số và bạn muốn có bao nhiêu chữ số ở bên phải dấu thập phân.

Vì vậy, nếu bạn đưa PIvào một Decimal(18,0)nó sẽ được ghi lại như 3?

Nếu bạn đặt PIvào một Decimal(18,2)nó sẽ được ghi là 3.14?

Nếu bạn đưa PIvào Decimal(18,10)được ghi là 3.1415926535.

Trong hầu hết thời gian, tôi sử dụng số thập phân (9,2) chiếm ít bộ nhớ nhất (5 byte) trong loại thập phân sql.


Chính xác => byte lưu trữ

  • 1 - 9 => 5
  • 10-19 => 9
  • 20-28 => 13
  • 29-38 => 17

Nó có thể lưu trữ từ 0 đến 9 999 999,99 (trước 7 chữ số + 2 chữ số sau dấu thập phân = tổng 9 chữ số), đủ lớn cho hầu hết các giá trị.

Bạn có thể thử cái này decimal(18,1)

Độ dài của các số phải hoàn toàn 18. Độ dài của các số sau dấu thập phân chỉ là 1 và không nhiều hơn số đó.

Trong MySQL DB decimal(4,2)cho phép chỉ nhập tổng cộng 4 chữ số. Như bạn thấy decimal(4,2), điều đó có nghĩa là bạn có thể nhập tổng cộng 4 chữ số trong đó hai chữ số có nghĩa là giữ sau dấu thập phân.

Vì vậy, nếu bạn nhập 100.0 vào cơ sở dữ liệu MySQL, nó sẽ hiển thị một lỗi như "Giá trị ngoài phạm vi cho cột".

Vì vậy, bạn chỉ có thể nhập trong phạm vi này: từ 00.00 đến 99.99.

Các câu trả lời khác là đúng. Giả sử ví dụ của bạn phản ánh đầy đủ các khả năng những gì bạn muốn là DECIMAL(3, 1). Hoặc, DECIMAL(14, 1)sẽ cho phép tổng cộng 14 chữ số. Đó là công việc của bạn để suy nghĩ về những gì đủ.

request.input("name", sql.Decimal, 155.33)              // decimal(18, 0)request.input("name", sql.Decimal(10), 155.33)          // decimal(10, 0)request.input("name", sql.Decimal(10, 2), 155.33)       // decimal(10, 2)

Video liên quan