Now ()에서 Postgresql의 Current_timestamp로
mysql에서는 다음과 같이 할 수 있습니다.
SELECT *
FROM table
WHERE auth_user.lastactivity > NOW() - 100
이제 postgresql에서이 쿼리를 사용하고 있습니다.
SELECT *
FROM table
WHERE auth_user.lastactivity > CURRENT_TIMESTAMP - 100
하지만이 오류가 발생합니다.
operator does not exist: timestamp with time zone - integer
어떻게 해결할 수 있습니까?
정수 대신 간격을 사용하십시오.
SELECT *
FROM table
WHERE auth_user.lastactivity > CURRENT_TIMESTAMP - INTERVAL '100 days'
now()Postgres 에서도 사용할 수 있습니다 . 문제는 timestamp또는 에서 정수를 더하거나 뺄 수 없다는 것 timestamptz입니다. Mark Byers가 제안한대로 간격을 빼거나 date정수를 더하거나 뺄 수 있는 유형을 사용할 수 있습니다.
SELECT now()::date + 100 AS date1, current_date - 100 AS date2
다음은 MySQL 문서가 말하는 내용입니다 NOW().
함수가 문자열 또는 숫자 컨텍스트에서 사용되는지 여부에 따라 현재 날짜 및 시간을 'YYYY-MM-DD HH : MM : SS'또는 YYYYMMDDHHMMSS.uuuuuu 형식의 값으로 반환합니다. 값은 현재 시간대로 표시됩니다.
mysql> SELECT NOW();
-> '2007-12-15 23:50:26'
mysql> SELECT NOW() + 0;
-> 20071215235026.000000
이제 스마트 데이트를 더 적은 것으로 확실히 줄일 수 있습니다.
SELECT (
date_part('year', NOW())::text
|| date_part('month', NOW())::text
|| date_part('day', NOW())::text
|| date_part('hour', NOW())::text
|| date_part('minute', NOW())::text
|| date_part('second', NOW())::text
)::float8 + foo;
그러나 그것은 정말 나쁜 생각 일 것입니다. 이해해야 할 것은 시간과 날짜가 형식이 지정되지 않은 어리석은 숫자가 아니라 자체 함수 및 연산자 세트 가있는 자체 유형이라는 것 입니다.
따라서 MySQL 시간을 사용하면 기본적 NOW()으로 멍청한 유형으로 취급 하거나 +MySQL 문서에서 찾을 수없는 가정을 재정의 합니다. 어쨌든 pg 의 date및 interval유형 을보고 싶을 것입니다 .
여기에 예가 있습니다 ...
select * from tablename where to_char(added_time, 'YYYY-MM-DD') = to_char( now(), 'YYYY-MM-DD' )
added_time은 일치를 위해 char로 변환 한 열 이름입니다.
select * from table where column_date > now()- INTERVAL '6 hours';
참고 URL : https://stackoverflow.com/questions/2993468/from-now-to-current-timestamp-in-postgresql
'IT TIP' 카테고리의 다른 글
| Pandas 데이터 프레임에서 튜플 열을 분할하는 방법은 무엇입니까? (0) | 2020.11.19 |
|---|---|
| 사용자 지정 작업 필터에서 작업으로 ASP.NET MVC 전달 개체 (0) | 2020.11.19 |
| 스칼라의 봉인 된 추상 대 추상 클래스 (0) | 2020.11.19 |
| Selenium에서 "StaleElementReferenceException"을 피하는 방법은 무엇입니까? (0) | 2020.11.19 |
| Virtual Box에서 MacOSX와 Windows 간의 공유 폴더 (0) | 2020.11.19 |