Trong bài viết này, chúng ta sẽ tìm hiểu về SQL Server chuyển đổi các hàm String thành Date như CAST (), TRY_CAST (), CONVERT (), TRY_CONVERT () và TRY_PARSE () để chuyển đổi một chuỗi thành định dạng ngày tháng trong SQL Server.

Bạn đang xem : chuyển đổi chuỗi thành ngày ms sql

Trong khi làm việc với dữ liệu thô, bạn có thể thường xuyên phải đối mặt với các giá trị ngày tháng được lưu trữ dưới dạng văn bản. Việc chuyển đổi các giá trị này sang kiểu dữ liệu ngày tháng là rất quan trọng vì ngày tháng có thể có giá trị hơn trong quá trình phân tích. Trong SQL Server, việc chuyển đổi một chuỗi thành ngày tháng có thể đạt được theo các cách tiếp cận khác nhau.

Nói chung, có hai loại chuyển đổi loại dữ liệu :

  1. Ngầm định trong đó người dùng không hiển thị các chuyển đổi; loại dữ liệu được thay đổi trong khi tải dữ liệu mà không sử dụng bất kỳ chức năng nào
  2. Rõ ràng trong đó người dùng hiển thị các chuyển đổi và chúng được thực hiện bằng cách sử dụng các chức năng CAST hoặc CONVERT hoặc các công cụ khác

Trong bài viết này, chúng tôi sẽ giải thích cách thực hiện chuyển đổi chuỗi thành ngày tháng một cách ẩn hoặc rõ ràng trong SQL Server bằng cách sử dụng các hàm tích hợp sẵn như CAST (), TRY_CAST (), CONVERT (), TRY_CONVERT () và TRY_PARSE ().

  • Lưu ý : Trước khi chúng ta bắt đầu, xin lưu ý rằng một số câu lệnh SQL được sử dụng là vô nghĩa theo quan điểm ngữ cảnh dữ liệu và chỉ được sử dụng để giải thích khái niệm.

SQL Server: chuyển đổi hoàn toàn chuỗi thành ngày tháng

Như đã đề cập ở trên, việc chuyển đổi kiểu dữ liệu hoàn toàn không hiển thị cho người dùng, như một ví dụ khi bạn đang so sánh hai trường hoặc giá trị có kiểu dữ liệu khác nhau:

1

CHỌN

*

TỪ

information_schema

.

cột

trong đó

‘1’

=

1

Trong SQL Server, việc chuyển đổi chuỗi thành ngày hoàn toàn phụ thuộc vào định dạng chuỗi ngày và cài đặt ngôn ngữ mặc định (cài đặt khu vực); Nếu ngày được lưu trữ trong một chuỗi có định dạng ISO: yyyyMMdd hoặc yyyy-MM-ddTHH: mm: ss (.mmm), nó có thể được chuyển đổi bất kể cài đặt khu vực, nếu không, ngày phải có định dạng được hỗ trợ nếu không ngày đó sẽ bị lỗi một ngoại lệ, như một ví dụ trong khi làm việc trong cài đặt khu vực “EN-US”, nếu chúng tôi cố gắng chuyển đổi một chuỗi có định dạng dd / MM / yyyy, nó sẽ không thành công vì nó cố gắng chuyển đổi nó thành định dạng MM / dd / yyyy là được hỗ trợ.

1

CHỌN

*

TỪ

information_schema

.

cột

trong đó

NHẬN

(

)

& gt;

’13 / 12/2019 ‘

Sẽ ném ngoại lệ sau:

Bản tin thứ 242, Mức 16, Trạng thái 3, Dòng 1
Việc chuyển đổi kiểu dữ liệu varchar thành kiểu dữ liệu datetime dẫn đến giá trị nằm ngoài phạm vi.

Xem Thêm  Cách lặp qua từ điển bằng Python - xem qua từ điển python

Ảnh chụp màn hình:

Nhưng, nếu chúng ta chuyển đổi phần ngày và tháng, nó sẽ thành công:

1

CHỌN

*

TỪ

information_schema

.

cột

trong đó

NHẬN

(

)

& gt;

’13 / 12/2019 ‘

Ảnh chụp màn hình:

Bạn có thể xem tài liệu chính thức này tại đây để tìm hiểu thêm về cách thay đổi cài đặt ngôn ngữ SQL Server.

Ngoài ra, bạn có thể đọc thêm về chuyển đổi ngầm định các loại ngày trong SQL Server, bằng cách tham khảo bài viết này: Chuyển đổi ngầm trong SQL Server .

Máy chủ SQL: Chuyển đổi chuỗi thành ngày tháng một cách rõ ràng

Cách tiếp cận thứ hai để chuyển đổi kiểu dữ liệu là chuyển đổi rõ ràng được thực hiện bằng cách sử dụng một số chức năng hoặc công cụ. Trong SQL Server, việc chuyển đổi một chuỗi thành ngày tháng một cách rõ ràng có thể đạt được bằng cách sử dụng CONVERT (). Các hàm CAST () và PARSE ().

CAST ()

CAST () là hàm chuyển đổi cơ bản nhất được cung cấp bởi SQL Server. Hàm này cố gắng chuyển đổi giá trị đã cho thành một kiểu dữ liệu được chỉ định (chỉ có thể chỉ định độ dài kiểu dữ liệu).

Ví dụ:

1

CHỌN

CAST

(

’12/01/2019′ < / p>

as

ngày

)

dưới dạng

StringToDate

,

CAST

(

NHẬN

(

)

as

VARCHAR

(

50

)

)

as

< p class = "crayon-h">

DateToString

Kết quả:

Lưu ý rằng trong SQL Server, việc chuyển đổi một chuỗi thành ngày tháng bằng hàm CAST () phụ thuộc vào cài đặt ngôn ngữ tương tự như chuyển đổi ngầm định, như chúng tôi đã đề cập trong phần trước, vì vậy bạn chỉ có thể chuyển đổi định dạng ISO hoặc định dạng được hỗ trợ bởi cài đặt ngôn ngữ hiện tại.

CHUYỂN ĐỔI ()

Hàm CONVERT () nâng cao hơn hàm CAST () vì kiểu chuyển đổi có thể được chỉ định. Hàm này nhận 3 đối số: (1) kiểu dữ liệu mong muốn, (2) giá trị đầu vào và (3) số kiểu (tùy chọn).

Nếu số kiểu không được chuyển cho hàm, nó sẽ hoạt động giống như hàm CAST (). Tuy nhiên, nếu đối số kiểu được truyền, nó sẽ cố gắng chuyển đổi giá trị dựa trên kiểu đó. Ví dụ: nếu chúng tôi cố gắng chuyển đổi giá trị “13/12/2019” sang ngày mà không chỉ định số kiểu, nó sẽ không thành công vì nó không được cài đặt ngôn ngữ hiện tại hỗ trợ:

1

CHỌN

CHUYỂN ĐỔI

(

THỜI ĐIỂM

,

’13/12/2019′

)

Kết quả:

Nhưng, nếu chúng ta chuyển 103 dưới dạng số kiểu (103 tương ứng với định dạng ngày dd / MM / yyyy), nó sẽ thành công:

1

CHỌN

CHUYỂN ĐỔI

(

THỜI ĐIỂM

,

’13/12/2019′

,

103

)

Kết quả:

Để biết thêm thông tin về hàm CONVERT () và các số kiểu ngày, bạn có thể tham khảo các bài viết sau:

PARSE ()

PARSE () là hàm CLR SQL sử dụng hàm .Net framework Parse (). Cú pháp PARSE () như sau:

Xem Thêm  Hàm trim () trong Java - trim làm gì trong java

PARSE (& lt; giá trị & gt; AS & lt; kiểu dữ liệu & gt; [SỬ DỤNG & lt; culture & gt;])

Nếu thông tin văn hóa không được chỉ định, PARSE () hoạt động tương tự như hàm CAST (), nhưng khi văn hóa được truyền trong biểu thức, hàm sẽ cố gắng chuyển đổi giá trị thành kiểu dữ liệu mong muốn bằng cách sử dụng văn hóa này. Ví dụ: nếu chúng tôi cố gắng phân tích cú pháp giá trị 13/12/2019 mà không chuyển thông tin văn hóa, nó sẽ không thành công vì “dd / MM / yyyy” không được cài đặt ngôn ngữ mặc định hỗ trợ.

Tuy nhiên, nếu chúng tôi chuyển “AR-LB” làm văn hóa (tiếng Ả Rập – Lebanon), trong đó “dd / MM / yyyy” được hỗ trợ, thì việc chuyển đổi sẽ thành công:

TRY_CAST (), TRY_CONVERT () và TRY_PARSE ()

Một trong những vấn đề chính của các hàm chuyển đổi kiểu dữ liệu là chúng không thể xử lý giá trị sai. Ví dụ: nhiều lần bạn có thể gặp phải các giá trị ngày xấu như “01/01/0000”; những giá trị này không thể được chuyển đổi và sẽ tạo ra một ngoại lệ chuyển đổi dữ liệu.

Để giải quyết vấn đề này, bạn có thể sử dụng hàm TRY_CAST (), TRY_CONVERT () hoặc TRY_PARSE () để kiểm tra xem giá trị có thể chuyển đổi được hay không, nếu có thì hàm sẽ trả về kết quả chuyển đổi, nếu không thì sẽ trả về giá trị NULL.

Thí dụ:

1

CHỌN

TRY_CAST

(

’01/01/2000′ < / p>

as

ngày

)

,

TRY_CAST

(

’01/01 / 0000 ‘

as

< p class = "crayon-k"> ngày

)

Kết quả:

CAST () vs CONVERT () vs PARSE ()

Để hiểu sự khác biệt giữa các hàm chuyển đổi này và cũng như để quyết định hàm nào sẽ sử dụng trong trường hợp nào, bạn có thể tham khảo site .

Kết luận

Trong bài viết này, chúng tôi đã giải thích các cách tiếp cận chuyển đổi dữ liệu nói chung. Sau đó, chúng tôi đã chỉ ra cách, trong khi sử dụng SQL Server, việc chuyển đổi một chuỗi thành ngày tháng có thể đạt được bằng cách sử dụng các phương pháp này. Chúng tôi đã giải thích các chức năng hệ thống do SQL Server cung cấp bằng cách đưa ra một số ví dụ và liên kết bên ngoài cung cấp thêm chi tiết.


Xem thêm những thông tin liên quan đến chủ đề chuyển đổi chuỗi thành ngày tháng ms sql

Convert numbers year, month and days and more to dates in SQL Server – with …FROMPARTS functions

  • Tác giả: SQL Server 101
  • Ngày đăng: 2021-06-02
  • Đánh giá: 4 ⭐ ( 6955 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: In this video, we will be converting numbers to dates using various functions ending with FROMPARTS.
    My SQL Server Udemy courses are:
    70-461, 70-761 Querying Microsoft SQL Server with T-SQL: https://rebrand.ly/querying-microsoft-sql-server
    98-364: Database Fundamentals (Microsoft SQL Server): https://rebrand.ly/database-fundamentals
    70-462 SQL Server Database Administration (DBA): https://rebrand.ly/sql-server-dba
    Microsoft SQL Server Reporting Services (SSRS): https://rebrand.ly/sql-server-ssrs
    SQL Server Integration Services (SSIS): https://rebrand.ly/sql-server-ssis
    SQL Server Analysis Services (SSAS): https://rebrand.ly/sql-server-ssas-mdx
    Microsoft Power Pivot (Excel) and SSAS (Tabular DAX model): https://rebrand.ly/microsoft-powerpivot-ssas-tabular-dax
    —-
    My Excel for PC courses are:
    Beginner to Excel – https://rebrand.ly/microsoft-excel-specialist
    Intermediate to Expert Advanced – https://rebrand.ly/microsoft-excel-expert
    Power Table, Get and Transform and Power Pivot – https://rebrand.ly/visualizing-data-excel
    VBA macros for Excel – https://rebrand.ly/excel-vba-pc
    —-
    In Excel, you can convert numbers to dates using the DATE function. However, because of the various date/time formats, there are six different functions that we can use in SQL Server:
    DATEFROMPARTS is the equivalent of DATE, using year, month and day.
    SMALLDATETIMEFROMPARTS also uses hour and minute.
    DATETIMEFROMPARTS adds seconds and milliseconds.
    TIMEFROMPARTS uses hour, minutes, seconds, fractions of seconds and precision (how many decimal places).
    DATETIME2FROMPARTS add years, months and days.
    and DATETIMEOFFSETFROMPARTS includes the hour offset and minute offset.
Xem Thêm  UPDATE - select top trong mysql

Hàm convert từ chuỗi sang kiểu datetime

  • Tác giả: dotnet.edu.vn
  • Đánh giá: 5 ⭐ ( 2551 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Trong tiến trình chuyển đổi ngày tháng, sẽ bắt gặp trường hợp lỗi ngày và tháng, làm thế nào để chuyển đổi ngày tháng đúng định dạng mong muốn?

Chuỗi máy chủ Sql để chuyển đổi ngày

  • Tác giả: qastack.vn
  • Đánh giá: 4 ⭐ ( 4513 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: [Tìm thấy giải pháp!] SQL Server (2005, 2000, 7.0) không có bất kỳ cách linh hoạt hoặc thậm chí không…

Hàm DateValue, TimeValue và DateTimeValue trong Power Apps – Power Apps

  • Tác giả: docs.microsoft.com
  • Đánh giá: 4 ⭐ ( 4986 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Thông tin tham khảo bao gồm cả cú pháp và ví dụ về các hàm DateValue, TimeValue và DateTimeValue trong Power Apps.

Xử lý Date trong SQL

  • Tác giả: viettuts.vn
  • Đánh giá: 4 ⭐ ( 2903 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Bảng dưới đây liệt kê tất cả các hàm xử lý Date trong SQL. Ngoài những hàm quan trong dưới đây, có nhiều hàm khác được hỗ trợ bởi các RDBMS khác nhau.

[PDF]SQL Server 2000 : Các hàm chuyển đổi kiểu dữ liệu.pdf

  • Tác giả: tailieumienphi.vn
  • Đánh giá: 3 ⭐ ( 9599 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: SQL Server 2000 : Các hàm chuyển đổi kiểu dữ liệu Công dụng của các hàm này dùng để chuyển đổi qua lại các kiểu dữ liệu tương thích nhau bên trong Microsoft SQL Server. Thông thường trong các xử lý bạn thường chuyển đổi các kiểu dữ liệu số hoặc kiểu dữ liệu ngày giờ về kiểu dữ liệu chuỗi để hiển thị Tải miễn phí tài liệu SQL Server 2000 : Các hàm chuyển đổi kiểu dữ liệu.pdf, download, tải miễn phí, pdf, doc, docx, xls, xlsx, ppt,pptx

Hàm ngày và thời gian (tham khảo)

  • Tác giả: support.microsoft.com
  • Đánh giá: 4 ⭐ ( 8209 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Dùng các hàm date (ngày) và time (thời gian) để tạo những công thức trả về số sê-ri, hiển thị một ngày hoặc thời gian cụ thể hoặc tính toán độ chênh lệch giữa các ngày hoặc các thời điểm.

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

By ads_php