SQL에서 DateTime 필드의 시간 부분
SQL에서 DateTime 필드의 시간 부분을 추출하려면 어떻게 해야 합니까?프로젝트의 경우 날짜에 상관없이 DateTime 필드의 타임스탬프가 5pm인 데이터를 반환해야 합니다.
이렇게 하면 시간만 반환됩니다.
SQL Server의 경우:
SELECT convert(varchar(8), getdate(), 108)
설명:
getDate()
현재 날짜와 시간을 알려주는 것입니다.
108
는 이 경우에 필요한 부분, 즉 시간을 포맷/제공하고 있습니다.
varchar(8)
그 부분의 글자 수를 알려줍니다.
좋아요:
글을쓰셨다면varchar(7)
거기서, 그것은 당신에게 줄 것입니다.00:00:0
글을쓰셨다면varchar(6)
거기서, 그것은 당신에게 줄 것입니다.00:00:
글을쓰셨다면varchar(15)
거기서, 그것은 여전히 당신에게 줄 것입니다.00:00:00
시간적인 부분만 출력하기 때문입니다.
MySQL의 경우:
SELECT DATE_FORMAT(NOW(), '%H:%i:%s')
필요한 경우 SQL Server에서hh:mi
, 다음을 사용할 수 있습니다.
DECLARE @datetime datetime
SELECT @datetime = GETDATE()
SELECT RIGHT('0'+CAST(DATEPART(hour, @datetime) as varchar(2)),2) + ':' +
RIGHT('0'+CAST(DATEPART(minute, @datetime)as varchar(2)),2)
데이트 시간을 원하는 경우 다음을 사용할 수 있습니다.DATEPART()
- SQL Server:
declare @dt datetime
set @dt = '2012-09-10 08:25:53'
select datepart(hour, @dt) -- returns 8
SQL Server 2008+에서는 다음을 수행할 수 있습니다.CAST()
시간:
declare @dt datetime
set @dt = '2012-09-10 08:25:53'
select CAST(@dt as time) -- returns 08:25:53
이것이 오래된 질문이라는 것을 알지만, 다른 사람들은 모두 대답하기 때문에.
- 날짜 시간이 아닌 문자열 반환,
- 날짜의 내부 표현(플로팅, 인트 및 백에 대한 표현)에 의존합니다.
- SQL Server 2008 이상이 필요합니다.
데이타임 작업만 필요하고 SQL Server 2005+에서 작동하는 "순수한" 옵션을 추가하려고 했습니다.
SELECT DATEADD(dd, -DATEDIFF(dd, 0, mydatetime), mydatetime)
이것은 날짜 0(1900-01-01)과 지정된 날짜 사이의 차이(전일)를 계산한 다음 지정된 날짜에서 해당 날짜 수를 빼서 날짜 구성 요소를 0으로 설정합니다.
SQL Server 2008에서 사용해 보십시오.
select *
from some_table t
where convert(time,t.some_datetime_column) = '5pm'
임의의 datetime 값을 가져다가 시간 구성 요소가 5pm이 되도록 조정하려면 SQL Server 2008에서는 여러 가지 방법이 있습니다.먼저 시작일(예: 2011-09-300:00:00.000)이 필요합니다.
Microsoft SQL Server의 모든 버전과 Sybase의 모든 버전에 대해 작동하는 한 가지 기술은 다음과 같습니다.
convert/3
datetime 값을 시간 성분이 없는 varchar로 변환한 다음 다시 datetime 값으로 변환하려면:select convert(datetime,convert(varchar,current_timestamp,112),112)
위의 내용은 현재 일의 시작일을 알려줍니다.
그러나 SQL Server 2008에서는 다음과 같이 말할 수 있습니다.
select start_of_day = t.some_datetime_column - convert(time, t.some_datetime_column ) , from some_table t
그게 더 빠를 겁니다
하루를 시작하면 오후 5시에 도착하는 것이 쉽습니다.하루의 시작 값에 17시간만 추가하면 됩니다.
select five_pm = dateadd(hour,17, t.some_datetime_column
- convert(time,t.some_datetime_column)
)
from some_table t
SQL 2012 FORMAT(value,'format')
를 들면 WHERE FORMAT(YourDatetime,'HH:mm') = '17:00'
"프로젝트의 경우 날짜와 상관없이 DateTime 필드의 타임스탬프가 5pm인 데이터를 반환해야 합니다."
그래서 당신이 말한 것은 시간이 아니라 날짜가 필요하다는 뜻이었던 것 같습니다.이와 같은 작업을 수행하여 5:00을 시간으로 날짜를 지정할 수 있습니다.
SELECT CONVERT(VARCHAR(10), GetDate(), 110) + ' 05:00:00'
이렇게 하면 날짜 부분이 벗겨집니다.
select convert(datetime,convert(float, getdate()) - convert(int,getdate())), getdate()
그리고 1900-01-01의 기본 날짜를 가진 날짜 시간을 반환합니다.
을 사용할 수 .CONVERT(TIME,GETDATE())
우이:
INSERT INTO infoTbl
(itDate, itTime)
VALUES (GETDATE(),CONVERT(TIME,GETDATE()))
또는 인쇄하거나 해당 시간을 반환하려면 다음과 같이 사용합니다.
DECLARE @dt TIME
SET @dt = CONVERT(TIME,GETDATE())
PRINT @dt
cast 선택(get date() as time(0))
반환 예: - 15:19:43
getdate()를 시간만 추출할 날짜 시간으로 대체합니다!
SELECT DISTINCT
CONVERT(VARCHAR(17), A.SOURCE_DEPARTURE_TIME, 108)
FROM
CONSOLIDATED_LIST AS A
WHERE
CONVERT(VARCHAR(17), A.SOURCE_DEPARTURE_TIME, 108) BETWEEN '15:00:00' AND '15:45:00'
declare @datetime as datetime
set @datetime = getdate()
select cast(cast(@datetime as time) as varchar(8))
연도:
SELECT DATEPART(YEAR, '2021-03-21' );
1시간 동안:
SELECT DATEPART(HOUR, '2021-03-21 08:50:30' );
언급URL : https://stackoverflow.com/questions/12354699/time-part-of-a-datetime-field-in-sql
'programing' 카테고리의 다른 글
"iff" 대 "if other if"의 성능 차이 (0) | 2023.09.15 |
---|---|
React Native에서 Android의 패키지 이름 변경 (0) | 2023.09.15 |
이 Oracle 쿼리를 MariaDB로 올바르게 변환하는 방법은 무엇입니까? (0) | 2023.09.10 |
쿼리 "not equal"이(가) 작동하지 않습니다. (0) | 2023.09.10 |
Oracle에서 .sql 파일을 가져오시겠습니까? (0) | 2023.09.10 |