your programing

간단한 DateTime SQL 쿼리

lovepro 2020. 10. 12. 07:58
반응형

간단한 DateTime SQL 쿼리


특정 범위 내에서 DateTime 데이터베이스 필드를 어떻게 쿼리합니까?

SQL SERVER 2005를 사용하고 있습니다.

아래 오류 코드

SELECT * 
  FROM TABLENAME 
 WHERE DateTime >= 12/04/2011 12:00:00 AM 
   AND DateTime <= 25/05/2011 3:53:04 AM

특정 시간 범위 내에서 행을 가져와야합니다. 예 : 10 분 시간 범위.

현재 SQL은 '12'근처에서 잘못된 구문을 반환합니다. "


작은 따옴표를 놓쳤습니다.

SELECT * 
FROM TABLENAME 
WHERE DateTime >= '12/04/2011 12:00:00 AM' AND DateTime <= '25/05/2011 3:53:04 AM'

또한 ISO8601 형식 YYYY-MM-DDThh : mm : ss.nnn [Z]을 사용하는 것이 좋습니다.이 형식은 서버의 로컬 문화에 의존하지 않습니다.

SELECT *
FROM TABLENAME 
WHERE 
    DateTime >= '2011-04-12T00:00:00.000' AND 
    DateTime <= '2011-05-25T03:53:04.000'

날짜로 전달하려는 문자열 주위에 따옴표가 필요하며 여기에서 BETWEEN을 사용할 수도 있습니다.

 SELECT *
   FROM TABLENAME
  WHERE DateTime BETWEEN '04/12/2011 12:00:00 AM' AND '05/25/2011 3:53:04 AM'

형식을 지정하는 동안 문자열을 날짜로 명시 적으로 변환하는 방법에 대한 예제는 다음 질문에 대한 답변을 참조하십시오.

SQL 서버 문자열을 날짜로 변환


이것은 SQL Server 2005와 2008 모두에서 저에게 효과적이었습니다.

SELECT * from TABLE
WHERE FIELDNAME > {ts '2013-02-01 15:00:00.001'}
  AND FIELDNAME < {ts '2013-08-05 00:00:00.000'}

아래 코드를 실행할 수 있습니다.

SELECT Time FROM [TableName] where DATEPART(YYYY,[Time])='2018' and DATEPART(MM,[Time])='06' and DATEPART(DD,[Time])='14

SELECT * 
  FROM TABLENAME 
 WHERE [DateTime] >= '2011-04-12 12:00:00 AM'
   AND [DateTime] <= '2011-05-25 3:35:04 AM'

이것이 작동하지 않으면 테이블을 스크립트로 작성하여 여기에 게시하십시오. 이렇게하면 정답을 신속하게 얻을 수 있습니다.


select getdate()

O/P
----
2011-05-25 17:29:44.763

select convert(varchar(30),getdate(),131) >= '12/04/2011 12:00:00 AM'

O/P
---
22/06/1432  5:29:44:763PM

SQL 데이터를 내보내려는 액세스 파일을 엽니 다. 거기에있는 모든 쿼리를 삭제하십시오. SQL Server 가져 오기 마법사를 실행할 때마다 실패하더라도 SQL 내보내기 마법사를 다시 실행하기 전에 삭제해야하는 쿼리가 Access DB에 생성됩니다.


다른 사람들은 이미 SQL Server의 날짜 리터럴을 작은 따옴표로 묶어야한다고 말했지만 월 / 일 혼동 문제를 두 가지 방법으로 해결할 수 있다고 덧붙이고 싶습니다 (즉, 25가 월로 표시되고 5가 일) :

  1. Convert(datetime, 'datevalue', style)스타일이 숫자 스타일 코드 중 하나 인 명시 적 위치를 사용합니다 . 캐스트 및 변환을 참조하십시오 . 스타일 매개 변수는 날짜를 문자열로 변환하는 것뿐만 아니라 문자열을 날짜로 구문 분석하는 방법을 결정하기위한 것입니다.

  2. 문자열로 저장된 날짜에는 지역 독립적 형식을 사용하십시오. 내가 사용하는 것은 'yyyymmdd hh : mm : ss'이거나 ISO 형식을 고려하십시오 yyyy-mm-ddThh:mi:ss.mmm. 실험에 따르면 다른 언어 불변 형식 문자열은 없습니다. (마지막에 시간대를 포함 할 수 있다고 생각하지만 위의 링크를 참조하십시오).

참고 URL : https://stackoverflow.com/questions/6119369/simple-datetime-sql-query

반응형