2017-03-16 22 views
0

我正在計算特定日期中的記錄數。 最終,得到了查詢工作,但這兩個查詢似乎對我來說相同的困惑。爲什麼我應該在轉換中附上date_time而不是引號?解釋在蜂巢日期函數之間使用的兩個轉換?

當我打的查詢,

select count(*) from TABLENAME 
where FROM_UNIXTIME(UNIX_TIMESTAMP(date_time), 'yyyyMMdd')='20170312'; 

結果是特定日期的計數到達。

,但是當我打,

select count(*) from TABLENAME 
where FROM_UNIXTIME(UNIX_TIMESTAMP('date_time', 'yyyyMMdd'))='20170312'; 

結果爲0。

請解釋這些查詢的差異。

回答

0

date_time是一列,而'date_time'是一個字符串,並試圖將它作爲日期結果使用NULL。
如果想晉級,你應該使用'列名date_time`

+0

怎麼樣使用不帶引號像FROM_UNIXTIME(UNIX_TIMESTAMP(DATE_TIME,「YYYYMMDD」))=「20170312」; –

+0

這是有效的,正如你的第一個例子 –

+0

理想情況下,第一個例子起作用。你能說請問爲什麼第三個例子不起作用,因爲我不使用字符串來表示。 –