2012-03-26 28 views
5

Tôi đang cố gắng chèn ngày vào bảng nhưng ngày và định dạng của ngày được chèn bị sai lệch. Kiểu dữ liệu trong bảng là Date. Kịch bản chèn của tôi như sau.SQL Server 2008 - vấn đề định dạng ngày trong khi chèn

insert into Trans(ID, TDate, Description) 
values(1, CONVERT(datetime, 25-02-2012, 101), 'Opening') 

Tôi đang cố chèn ở định dạng dd/MM/yyyy và tôi muốn định dạng này trong cùng một định dạng trong bảng. Nhưng trong bảng của tôi ngày là 1894-07-22 !!

Tôi muốn ngày được chèn chính xác như định dạng mình muốn và tôi muốn xem ngày được chèn là 25-02-2012 trong bảng.

Có gì sai ở đây? Ai đó có thể giúp?

+5

Bạn nên sử dụng định dạng ISO ('YYYYMMDD '- ** không có dấu gạch ngang hoặc bất kỳ thứ gì!) là cài đặt ngôn ngữ và ngày tháng độc lập và hoạt động trên mọi phiên bản của SQL Server. Ngoài ra: SQL Server ** không ** lưu trữ ngày theo bất kỳ định dạng dựa trên chuỗi cụ thể nào - nó được lưu trữ dưới dạng dữ liệu nhị phân 8 byte. Tất cả những gì bạn thấy là biểu diễn ** chuỗi ** của 'DATE' được lưu trữ - bạn ** không thể ** lưu trữ nó trong một định dạng cụ thể -' DATE' là 'DATE' là' DATE'. –

Trả lời

0

bạn nên sử dụng dấu nháy đơn xung quanh ngày của mình. Nếu bạn muốn định dạng ngày của định dạng dd/mm/yyyy sau đó bạn sẽ muốn sử dụng chuyển đổi (datetime, '25 -02-2012' , 103)

insert into Trans(ID,TDate,Description) 
values(1,CONVERT(datetime,'25-02-2012',103),'Opening') 

nếu bạn sử dụng convert(varchar, getdate(), 101) định dạng của ngày sẽ mm/dd/yyyy.

Có một số liên kết hữu ích để sử dụng như một tài liệu tham khảo cho các chuyển đổi datetime:

+0

Cảm ơn bluefeet. sẽ thử nó .. – Codebug

+0

chuyển đổi (char (10)), '25-02-2012', 103) cho lỗi khi loại trường bảng của tôi là datetime. – Codebug

+0

được cập nhật để chuyển đổi (datetime ...) – Taryn

-1
insert into emp 
(EMPNO,ENAME,DEPTNO,JOB,SAL,COMM,MGR,HIREDATE)values 
(7839,'KING',10,'PRESIDENT',5000,NULL,NULL,'17-11-81') 
+0

Câu trả lời này thậm chí phải làm gì với câu hỏi? –

Các vấn đề liên quan