์ ๋ฐ๋๊ฐ ์ค์ํ ๋๋ฌธ ๊ฒฝ์ฐ์ ์๊ฐ ๊ตฌ๋ฌธ ๋ถ์์ ์ ํ ํด์ ํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
๋ณตํฉ ๊ณ ์ ํค (user_id, created_at)
์์ timestamptz๋ฅผ ์ฌ์ฉํ์ฌ ์๊ณ์ด ๊ฐ์ ์ ์ฅํ๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ javascript๊ฐ created_at
ํ๋๋ฅผ ๋ฐ๋ฆฌ์ด๋ก ์๋ฅด๊ธฐ ๋๋ฌธ์ ํ์ด์ง ๋งค๊น์ ํ ์ ์์ผ๋ฏ๋ก ๋์ผํ ๋ฐ๋ฆฌ์ด ๋ด์ ๋ ๊ฐ์ ํ๋๊ฐ ์์ฑ๋๋ฉด ์ค๋ณต๋ฉ๋๋ค.
-- record --
id: 'c2ed61d5-ffab-4b0e-a957-c184b3f33132',
created_at: '2016-02-02 15:46:17.681601-05'
precise ^
knex ์ฟผ๋ฆฌ ์ฌ์ฉ:
knex("series").where("created_at", ">", last.created_at).toString()
select * from series
where created_at > '2016-02-02T15:46:17.681-05:00'
truncated ^
ํ์์คํฌํ ๊ตฌ๋ฌธ ๋ถ์์ ์ ํ ํด์ ํ๋ ๊ฒ์ ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๊ธฐ๋ฅ์ ๋๋ค. ์ฌ์ฉ์ ์ ์ ๊ฐ๋ฅํ 'parseTime' ๊ธฐ๋ฅ ๋๋ ์ด์ ์ ์ฌํ ๊ฒ์ ๋๋ค.
๊ทธ๋ฌ๋ ๊ทํ์ ๊ตฌ์ฒด์ ์ธ ์ฌ๋ก์ ๋ํด์๋ ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์ปดํจํฐ ์๊ณ์ ์ธ๋ถ์ฑ์๋ ์ ํ์ด ์์ผ๋ฏ๋ก ๊ณ ์ ํ created_at
๊ฐ์ ์๊ตฌํด๋ ํ์ฅ๋์ง ์์ต๋๋ค.
@aj0strow DB์์ ํ์ ์ฝ์ ๋ knex
๊ฐ timestamp
๋ฅผ Javascript Date ๊ฐ์ฒด๋ก ๋ณํํ๋ ๊ฒ์ ๋ฐฉ์งํ๊ณ ์ถ์ผ์ญ๋๊น?
๊ทธ๋ ๋ค๋ฉด ํด๋น ๊ตฌ๋ฌธ ๋ถ์์ pg
๋๋ผ์ด๋ฒ์ ์ํด ์ต์ํ PostgreSQL์ ๋ํด ์ํ๋ฉ๋๋ค. ๋ค์๊ณผ ๊ฐ์ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ์ ๋ค๋ฅด๊ฒ ๊ตฌ๋ฌธ ๋ถ์ํ๋๋ก ๋๋ผ์ด๋ฒ๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค.
var pgTypes = require('pg').types;
// Don't parse dates to js Date() objects
pgTypes.setTypeParser(1082, 'text');
// Don't parse timestamps to js Date() objects
pgTypes.setTypeParser(1184, 'text');
text
๋งค๊ฐ๋ณ์ ๋์ ๋๋ผ์ด๋ฒ์ ๊ณ ์ ํ ํ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ ์๋ ์์ต๋๋ค.
@rhys-vdw ์ฌ์ฉ์ + ์๊ฐ์ ๊ณ ์ ํ๋ฏ๋ก ๊ด์ฐฎ์ ๊ฒ์ ๋๋ค.
@elhigu ๊ฐ์ฌํฉ๋๋ค!
๊ทธ๊ฒ์ด ๋ฐ๋ก ๋ด๊ฐ ์ฐพ๋ ๊ฒ์
๋๋ค. ์ฟผ๋ฆฌ์์ ::text
๋ก ์บ์คํ
ํ๋ ๊ฒ๋ ๊ฐ๋ฅํ์ง๋ง ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ์ฌ์ฐ๋ฏ๋ก ํ์ํ ๋ ๊ตฌ๋ฌธ ๋ถ์์ ๋๊ณ new Date
๊ตฌ๋ฌธ ๋ถ์ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ค์ ํ๋ฒ ๊ฐ์ฌํฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@aj0strow DB์์ ํ์ ์ฝ์ ๋
knex
๊ฐtimestamp
๋ฅผ Javascript Date ๊ฐ์ฒด๋ก ๋ณํํ๋ ๊ฒ์ ๋ฐฉ์งํ๊ณ ์ถ์ผ์ญ๋๊น?๊ทธ๋ ๋ค๋ฉด ํด๋น ๊ตฌ๋ฌธ ๋ถ์์
pg
๋๋ผ์ด๋ฒ์ ์ํด ์ต์ํ PostgreSQL์ ๋ํด ์ํ๋ฉ๋๋ค. ๋ค์๊ณผ ๊ฐ์ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ์ ๋ค๋ฅด๊ฒ ๊ตฌ๋ฌธ ๋ถ์ํ๋๋ก ๋๋ผ์ด๋ฒ๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค.text
๋งค๊ฐ๋ณ์ ๋์ ๋๋ผ์ด๋ฒ์ ๊ณ ์ ํ ํ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ ์๋ ์์ต๋๋ค.