我想創建一個表的值在同一行,但不同的列,作爲一個特定的日期和時間。MS訪問表不包括小時00
舊錶
YYYY-MM-DD HH:00:01;值1
YYYY-MM-DD hh:00:02;值2
並且新表格將分組並取分配給同一小時的值的平均值。
新表
YYYY-MM-DD 01:00;平均(值1和值2)
在VBA的SQL代碼工作得很好,但會跳過寫入相關聯的至00:00
例
2016-12小時和分鐘-05 23:00; 56
2016-12-06; 68
2016-12-06 01:00; 70
任何人都可以告訴我爲什麼這樣做,也許指出代碼中的錯誤?
目標
2016年12月5日23:00; 56
2016-12-06 00:00; 68
2016-12-06 01:00; 70
代碼
Sql = "INSERT INTO LoggedData (Date, Value) "
Sql = Sql & "SELECT Format([Date],'yyyy/mm/dd hh') & ':00' AS wDate, Avg(tmp_LoggedData.Value) AS wValue"
Sql = Sql & "FROM tmp_LoggedData "
Sql = Sql & "WHERE Format([Date], 'yyyy/mm/dd hh:mm')"
Sql = Sql & "GROUP BY Format([Date],'yyyy/mm/dd hh') & ':00';"
這聽起來像你所描述的默認日期/時間在Access格式。有關詳細信息,請參閱[此答案](http://stackoverflow.com/a/26587881/2144390)。 –
好的!我認爲,通過形式化([Date],yyyy/mm/dd hh:mm),我會包括午夜。但是,它並沒有真正做到這一點 – Rod
我懷疑發生了什麼:你的'Format'函數正在創建一個明確包含'00:00'時間分量的日期/時間字符串。這被解析成真正的日期/時間值並插入到新表中。然後,當您查看新表格中的值時,您會看到Access默認的日期/時間格式,即在時間恰好是午夜時忽略時間分量。 –