Prisma

22.01.05 [prisma] Date.now()와 new Date()

슈팅스타제제 2022. 1. 5. 21:52

schema.prisma에서 time에 대한 타입을 다음과 같이 정의하였다. 

model Schema {
  id Int
  time DateTime
}

처음에는 prisma.table.create에서 현재 시간을 time에 저장할 때,

Date.now()로 작성했는데 아래와 같은 에러가 발생하였다. 

"\nInvalid `prisma.oneDay.create()` invocation:\n\n{\n  data: {\n    coinId: 4,\n    symbol: 'coinData.symbol',\n    quote: 34,\n    time: '1641370249008'\n          ~~~~~~~~~~~~~~~\n  }\n}\n\nArgument time: Got invalid value '1641370249008' on prisma.createOneOneDay. Provided String, expected DateTime.\n\n"

그래서 찾다가 new Date()로 바꿨는데 정상 작동했다. 

이유는 Date.now()는 1970년 1월 1일 0시부터 밀리초로 환산한 시간 즉 숫자로 나오기 때문에 데이터 타입이 number이고, 

new Date()는 현재 날짜와 시간을 오브젝트로 나타낸 것이며 DateTime과 맞는 타입이었던 것이다. 

참고문서링크:

https://velog.io/@taelee/Date-new-Date-new-Date-Date.now-%EC%B0%A8%EC%9D%B4-JavaScript

 

Date(), new Date(), +new Date(), Date.now(), 차이 - JavaScript

new Date() : 날짜 시간 오브젝트Date(): 위 오브젝트를 문자열로 바꿈\+new Date(), Date.now(): 둘은 같은데 1970년 1월 1일 0시부터 지난 시간을 밀리초로 환산

velog.io