2017-12-08 7 views
0

나는 회사의 일부 예비 부품을 나열한 테이블을 만들었습니다.
표는 다음과 같습니다

SQL : DATE_TIME 및 CURRENT_TIMESTAMP를 올바르게 계산하는 방법은 무엇입니까?

ID | Name | install_date | last_changed | order_nr. | WearStatus 
---------- 
1 | "ABC" | **2017-11-08 10:34:40** | NULL | 123456 | **50**<br> 
2 | "DEF" | **2017-11-08 10:34:40** | NULL | 654321 | **10**<br> 

.
.

예비 부품을 변경해야하는 미래 날짜를 계산하고 싶습니다. 예를 들면 다음과 같습니다.
12 월 11 일에 부품을 설치했고 정확히 12 월 11 일에 부품을 설치했습니다.이 부품에는 50 %의 마모가 있습니다. 그 다음에는 다음과 같이 알고 있습니다. 10 일 남았습니다.

내 계산은 세 가지 식의 규칙에 따라된다 시간 = (100 * 델타 t)/I는 다음과 같은 SQL 명령을 사용

착용 :

SELECT ((100*(CURRENT_TIMESTAMP - First_Usage)/Wear) + First_Usage) As 'Change_Date' FROM spare_parts 

을하고 다음을 얻을 결과 :

enter image description here

당신이 거기 아칸소 표시되는 경우 어떤 미친 DATE_TIMES 같은 2017-19-41-43-19-31.

내 질문은 지금 : YYYY-MM-DD hh : mm : ss과 같은 유용한 "DATE_TIME"형식으로이 "숫자"를 어떻게 포맷합니까?


종류의 토비가

+0

INSTALL_DATE이 날짜 필드입니다? – farbiondriven

+0

TO_DATE ('사용중인 표현')을 사용해 보셨습니까? – bharathkumarch

+0

예, DATE_TIME입니다. 그리고 WearStatus는 정수입니다. 결과 (Change_Date)도 DATE_TIME이어야합니다. 인사말 – Toberto

답변

1

이이 방법을 시도에 관하여 :

SELECT DATE(DATE_ADD(First_Usage, INTERVAL (100*(DATEDIFF(NOW(),First_Usage)/Wear)) day)) As 'Change_Date' FROM spare_parts 

또는

SELECT FROM_UNIXTIME((100*(CURRENT_TIMESTAMP - UNIX_TIMESTAMP(First_Usage))/Wear) + UNIX_TIMESTAMP(First_Usage))) As 'Change_Date' FROM spare_parts