ql에서 두 시간 형식을 상쇄한 값

오늘 어떤 사람이 데이터베이스 두 시간 유형의 필드를 찾아내고 뺄셈을 해서 긴 숫자를 얻었다.이 숫자는 무엇입니까?
먼저 데이터베이스에test표(mysql 데이터베이스)를 만듭니다.
CREATE TABLE `NewTable` (
`id`  int(10) NOT NULL AUTO_INCREMENT ,
`time1`  timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP ,
`time2`  timestamp NULL DEFAULT NULL ,
PRIMARY KEY (`id`)
)

그리고 두 개의 데이터를 입력하여 다음과 같은 문장으로 조회한다
SELECT time2,time1,time2-time1 FROM `test`;

조회 결과는 다음과 같다. 결론은 이 차치 1의 단위가 초인 것 같다.
2012-05-15 19:02:17 2012-05-15 19:02:16 1
타임1과 타임2의 유형을date로 변경합니다.이 결과의 단위는 0이다.
타임1과 타임2의 유형을datetime로 바꾸면 다음과 같습니다. 단위는 초인 것 같습니다.
2012-05-15 19:02:16
2012-05-15 19:02:17
-1.000000
오늘 만난 디지털 결과가 확실하지 않은 상황은 다시 나타나지 않았다. 데이터베이스는 데이터베이스의 유형이oracle이기 때문일까?
우선 여기에 적어 두어라, 이 시간 뺄셈은 아무래도 함부로 쓰지 않는 것이 좋겠다.mysql에 시간차를 계산하는 함수datediff()가 있습니다. 테스트해 보겠습니다.
SELECT time2,time1,time2-time1,DATEDIFF(time2,time1) FROM `test`;

결과는 다음과 같습니다.
2012-05-15 19:02:16
2012-05-15 19:02:17
-1.000000
0
0이라니...스스로 알아맞혔더니 타임diff()라는 함수가 있었구나. 다시 테스트해 보자.
SELECT time2,time1,time2-time1,TIMEDIFF(time2,time1) FROM `test`;

이번 결과는 맞았어요. 결과의 단위는 초예요.
2012-05-15 19:02:16
2012-05-15 19:02:17
-1.000000
-00:00:01
그래, 데이터베이스 쪽에서 몇 개의 시간 함수를 더 익혀야 해.now () 함수의 사용법을 기록합니다.now () 는 현재 시간을 가져오는 데 사용되며, 되돌아오는 시간은 초 단위이지만, 되돌아오는 시간은 +0입니다. 이것은 하나의 꼬리입니다. 재미있습니다.
select NOW(),NOW()+0;

되돌아오는 결과는 그가 문자열을 아이디로 얻을 수 있는 것도 괜찮은데.
2012-05-15 19:20:44
20120515192044.000000
두 개의 함수를 더 주세요. 오늘 최근 7일 동안의 기록을 계산하는 데 사용된 함수입니다.date_add () 및 datesub()
select DATE_ADD(now(), Interval 1 month);
SELECT DATE_SUB(NOW(), INTERVAL 1 MONTH);

되돌아오는 결과는 다음과 같다. 뒤의 차치는 바꿀 수 있다.
2012-05-15 19:27:47
2012-04-15 19:27:47
2012-06-15 19:27:47
뒤의 차액은 내가 게으름을 피워서 인터넷에 접속하여 한 번 떼어 보았지만 시험을 하지 않았다
SECOND 초 SECONDS.
MINUTE 분 MINUTES
HOUR 시간, HOURS.
데이 데이즈.
MONTH 월 MONTHS
YEAR년 YEARS
MINUTE_SECOND 분 및 초 "MINUTES: SECONDS"
HOUR_MINUTE 시간 및 분 "HOURS: MINUTES"
DAY_HOUR 일 및 시간 "DAYS HOURS"
YEAR_MONTH 년 및 월 "YEARS-MONTHS"
HOUR_SECOND 시간, 분, "HOURS:MINUTES:SECONDS"
DAY_MINUTE 일, 시간, 분 "DAYS HOURS: MINUTES"
DAY_SECOND 일, 시간, 분, 초 "DAYS HOURS:MINUTES:SECONDS"
원래 자바에서 실험을 하나 했어요.붙이세요.
public static void main(String[] args) {
		Calendar calendar=new GregorianCalendar(2012, 5, 10, 21, 12,44);
		Calendar calendar2=new GregorianCalendar(2012,5, 10, 21, 12,43);
		System.out.println(calendar.getTimeInMillis()-calendar2.getTimeInMillis());
	}

이 결과는 1000이고 단위는 밀리초이다.
/**
*20120522
*/
오늘 문제가 발생했습니다.oracle에서, 한 필드는date 형식입니다. 어느 날 이후의 기록을 어떻게 찾습니까?
dateColumn>to 로date('2012-05-02','yyyy-mm-dd');
만약 필드가timestamp 형식이라면, 마찬가지로 할 수 있습니다. 처음에 0보다 큰 쓰기 방법을 사용했는데, 결과는 틀렸습니다.
총괄적으로 말하면 mysql에서 시간 상감은 함수와 별 차이가 없는 것 같고, 차치는 필드 유형과 관련이 있다.오후에 언급한 데이터를 모르는 현상은 나타나지 않았다.그리고 몇 개의 시간 함수를 익혀야 한다.java에서 나오는 시간의 함수는calendar이고,simpledateformate와date도 자주 사용합니다.

좋은 웹페이지 즐겨찾기