Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

cách hiển thị giá trị số bằng chữ

Vậy truy vấn hoạt động như thế nào? Đây là lý do tại sao:

select to_char(to_date(:number,'j'),'jsp') from dual;

Nếu bạn nhìn vào phần bên trong của truy vấn to_date (:number, 'j') thì 'j' hoặc J là Ngày Julian (ngày 1 tháng 1 năm 4713 trước Công nguyên), về cơ bản ngày này được sử dụng cho các nghiên cứu thiên văn.

Vì vậy, to_date (:number, 'j') nó lấy số được biểu thị bằng số và giả sử đó là ngày julian, chuyển đổi thành ngày tháng.

Nếu bạn chuyển 3 thành số, thì ngày đó sẽ chuyển đổi thành ngày 3 tháng 1 năm 4713 trước Công nguyên, điều đó có nghĩa là số 3 được thêm vào ngày Julian.

select to_char(to_date(3,'j'),'jsp') from dual;

Now to_char (to_date (3, 'j'), 'jsp'), jsp =Now; lấy ngày đó (to_date (3, 'j')) và đánh vần số julian mà nó đại diện, kết quả là:

TO_CH
-----
three

Có một giới hạn khi sử dụng ngày tháng Julian, Nó nằm trong khoảng từ 1 đến 5373484. Đó là lý do tại sao nếu bạn đặt các giá trị sau 5373484, nó sẽ tạo cho bạn một lỗi như được hiển thị bên dưới:

ORA-01854: julian date must be between 1 and 5373484

Xin chào tất cả mọi người, nó là thú vị chủ đề này. Tôi nhớ khi tôi học Oracle vào năm 2005, một trong những người hướng dẫn yêu cầu tôi viết một mã PL / SQL để chuyển đổi các số thành từ ngữ, để đạt được điều này thì phải mất cả một đoạn mã dài hai trang.

Dưới đây là một số tài liệu tham khảo có thể giúp chúng tôi hiểu về ngày Julian, đó là lý do tại sao chúng tôi sử dụng ký tự 'j' hoặc 'J' trong hoạt động này.

Đầu tiên, có một trang web có ví dụ và giải thích về "Cách chuyển số thành từ bằng cách sử dụng truy vấn SQL của Oracle":

http://viralpatel.net/blogs/convert- number-into-words-oracle-sql-query /

Thứ hai, nếu bạn muốn biết thêm về "ngày Julian", hãy truy cập:

http://en.wikipedia.org/wiki/Julian_day

Thứ ba nếu bạn muốn biết thêm về người đã đề xuất số ngày Julian vào năm 1583, đó là bởi "Joseph Scaliger":

http://en.wikipedia.org/wiki/Joseph_Justus_Scaliger

Tôi không nên tiếp tục đăng lại những gì một tác giả khác trong các trang web này đã thực hiện, đó là lý do tại sao tôi chỉ đăng liên kết mà bạn có thể truy cập chúng và đọc những gì bạn cần để hiểu cách hoạt động của truy vấn như thế này:

SELECT TO_CHAR (TO_DATE (2447834, 'j'), 'jsp') FROM DUAL;

// Đầu ra:hai triệu bốn trăm bốn mươi bảy nghìn tám trăm ba mươi tư



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. EM12c hiện cho phép DB12c làm đại diện

  2. PL / SQL:Lỗi PLS-00306:sai số hoặc loại đối số trong lệnh gọi được kích hoạt cho bảng số

  3. ĐẶT SQLBLANKLINES:Cách Cho phép Dòng trống trong SQLcl &SQL * Plus

  4. Chuyển một đoạn SQL thành một hàm Oracle

  5. Tại sao thứ tự sắp xếp varchar của Oracle không khớp với hành vi của so sánh varchar?