복붙노트

[SQL] 어떻게 SQL 서버에서 "날짜"데이터 유형을 사용할 수 있습니까?

SQL

어떻게 SQL 서버에서 "날짜"데이터 유형을 사용할 수 있습니까?

나는 데이터 유형 "날짜"테이블에 열을 만들려고 할 때 안녕 친구 나는 당신의 도움이 필요 해요, 제발 그것은 나를 오류주고 나는 여기에 내 코드에 추가 할 수 없습니다

Create table Orders (
Order_ID INT Primary Key,
Book_name varchar(100) ,
isbn varchar(100) ,
Customer_ID INT Foreign key references Customer,
Order_date date,
);

그것은 나에서 필요로 또 다른 한가지는 생성 일 전에 무언가의 날짜를 얻을 수 있습니다

더 명확 수 : 요청 쿼리 내가 그렇게 할 수있는 방법 8 월 2 전에 날짜를 찾아냅니다

그와 같은 데이터를 입력하려고했습니다

Insert Into Orders(Order_ID, Book_name, isbn, Customer_ID, Order_date) values (1, 'Design User Interface',9345678210123, 1, '02-08-2015'); 
Insert Into Orders(Order_ID, Book_name, isbn, Customer_ID, Order_date) values (2, 'Fire',9654693261489, 1, '05-08-2015'); 
Insert Into Orders(Order_ID, Book_name, isbn, Customer_ID, Order_date) values (3, 'The Odyssey',9654864332511, 2, '01-08-2015'); 
Insert Into Orders(Order_ID, Book_name, isbn, Customer_ID, Order_date) values (4, 'Anatomy',9654877777755, 2, '30-07-2015'); 
Insert Into Orders(Order_ID, Book_name, isbn, Customer_ID, Order_date) values (5, 'Surgery',9654864951753, 2, '01-07-2015'); 

하지만, 그것은 단지 처음 3 삽입하고 마지막 두을 받아 그것은 나를 오류가 있습니다 : /을

해결법

  1. ==============================

    1.당신은 "마지막 두 개의"에 문제가 없습니다.

    당신은 "마지막 두 개의"에 문제가 없습니다.

    그러나, 당신은 그들 모두에 문제가 없지만, 다른 후 한 점.

    날짜는 MM-DD-YYYY로 해석됩니다. 이 intrepretation은 시스템의 문화에 depenent된다. 처음 세 잘못된 날짜 그러나 작업에 의존하고 있습니다. 제 4 회 휴식과 다섯 번째 (때문에 오류 이전에) 실행되지 않습니다.

    4 호선의 실제 오류 거짓말 그래서.

    당신은 날짜, 사용 문화 독립적 인 형식을 처리 할 때마다. 다음과 같은 - 중 하나를 사용하는 것이 좋습니다

    20150730 (=> the 30th of July in 2015)
    
    {d'2015-07-30'} or {t'23:30:59'} or {ts'2015-07-30 23:30:59'}
    
    '2015-07-30T00:00:00'
    
  2. ==============================

    2.나는 당신이있는 거 수신이 오류를 가정하고 있습니다 :

    나는 당신이있는 거 수신이 오류를 가정하고 있습니다 :

    나는 당신이 제공 한 데이터에서 점점 볼 수있는 유일한 다른 오류는 FOREIGN KEY 위반이다. 세 번째 INSERT 통과 지적하고, 그러나, 표시되지 않습니다 네 번째 사용하는 것과 같은 외래 키 ID는 경우가 있습니다.

    그래서,이 오류가있는 이유는 제공 DATEFORMAT가 예상 형식으로되지 않는 때문이다.

    날짜를 나타내는의 ANSI 표준 방법은 형식 YYYY-MM-DD입니다. 당신은 DD-MM-YYYY에있을 나타납니다 제공 한 형식,하지만 세션 외모에 대한 기본 다음과 같은 날짜에 결과가 INSERT로 해석되고 그것의 기대 MM-DD-YYYY, 같은 :

    Order_ID    Order_Date
    --------------------------
    1           Feb 02 2015
    2           May 08 2015
    3           Jan 08 2015
    4           (30th month?) 07 2015
                ^- This is the part that's erring.
    

    당신의 의도가 나타납니다이 DD-MM-YYYY 수 있기 때문에,이 두 가지 방법으로 해결할 수 있습니다 :

    Insert Into #Orders(Order_ID, Book_name, isbn, Customer_ID, Order_date) values (1, 'Design User Interface',9345678210123, 1, '2015-08-02'); 
    Insert Into #Orders(Order_ID, Book_name, isbn, Customer_ID, Order_date) values (2, 'Fire',9654693261489, 1, '2015-08-05'); 
    Insert Into #Orders(Order_ID, Book_name, isbn, Customer_ID, Order_date) values (3, 'The Odyssey',9654864332511, 2, '2015-08-01'); 
    Insert Into #Orders(Order_ID, Book_name, isbn, Customer_ID, Order_date) values (4, 'Anatomy',9654877777755, 2, '2015-07-30'); 
    Insert Into #Orders(Order_ID, Book_name, isbn, Customer_ID, Order_date) values (5, 'Surgery',9654864951753, 2, '2015-07-01'); 
    

    Set DateFormat dmy
    
    Insert Into #Orders(Order_ID, Book_name, isbn, Customer_ID, Order_date) values (1, 'Design User Interface',9345678210123, 1, '02-08-2015'); 
    Insert Into #Orders(Order_ID, Book_name, isbn, Customer_ID, Order_date) values (2, 'Fire',9654693261489, 1, '05-08-2015'); 
    Insert Into #Orders(Order_ID, Book_name, isbn, Customer_ID, Order_date) values (3, 'The Odyssey',9654864332511, 2, '01-08-2015'); 
    Insert Into #Orders(Order_ID, Book_name, isbn, Customer_ID, Order_date) values (4, 'Anatomy',9654877777755, 2, '30-07-2015'); 
    Insert Into #Orders(Order_ID, Book_name, isbn, Customer_ID, Order_date) values (5, 'Surgery',9654864951753, 2, '01-07-2015'); 
    

    이 날짜를 참조 할 때에 얻을 수있는 좋은 습관이다 나는 개인적으로, 첫 번째 옵션을 추천 할 것입니다.

  3. from https://stackoverflow.com/questions/34275565/how-can-i-use-date-datatype-in-sql-server by cc-by-sa and MIT license