En tiedä edes oikeita termejä, mutta miten saisin sqlite tietokannasta suoritetun kyselyn ajat (UTC) muutetuksi paikalliseen aikaan. Tässä koodini, mikä varmasti jo sinänsä on helpomminkin toteutettavissa.
Toinen ongelma on saada samalla aikaleimalla olevat tiedot samalle riville pilkulla erotettuna, nyt ne tulevat allekkain enkä saa niistä graafia.
import sqlite3 import csv import sys conn = sqlite3.connect('/home/talo/data/talo.db') cur = conn.cursor() #DATETIME = select datetime("now", "localtime"); #data = cur.execute('select time, value from talo_data where position_id=45 AND DATETIME([time]) >= DATETIME("now","-1 months");') data = cur.execute('select time, value from talo_data where position_id=1 AND DATETIME([time]) >= DATETIME("now","-1 day");') #data = cur.execute('select time, value from talo_data where position_id IN (12,14) AND DATETIME([time]) >= DATETIME("now","-7 days");') #data = cur.execute('select time, value from talo_data where position_id=21 AND DATETIME([time]) >= DATETIME("now","start of week -1");') #data = cur.execute('select time, value from talo_data where position_id IN (6,7,8,9,10,11) AND DATETIME([time]) >= DATETIME("now","start of day");') #f = open('/home/talo/log/var.csv', 'w') with open('/home/talo/log/day1.csv', 'wb') as f: writer = csv.writer(f) writer.writerow(['date', 'value']) writer.writerows(data) for row in data: print >> f, row
Mod. korjasi kooditagit!
http://sqlite.org/lang_datefunc.html
Kertoo modifierin 12 joka on localtime. En nyt pysty kokeileen, mutta sillä sen pitäisi lähteä.
Mä niin haistan jokakeväisen ja syksyisen aikasössinnän.
Ei taivu minun taidoilla, että tietokannan UTC muuttuisi csv tiedostoon kirjoitettaessa LOCAL timeksi
Opettele sitten paremmaksi. Eihän siihen muu auta.
The Alchemist kirjoitti:
Opettele sitten paremmaksi. Eihän siihen muu auta.
Ai jaa, tämä onkin niinkuin tuppaavat kaikki keskustelupalstat olemaan suomi24 tasoa.
Olisiko ihan mahdoton ajatus, jos tulostusvaiheessa katsot onko kesä- vai talviaika ja toimit sen mukaan. Siirto UTC ajasta (ainoa fiksu aikamuoto tallennukseen) paikalliseen aikaan ei ole kauhean fiksun kuuloinen. Jos aika vaihtuukin välillä, niin ajat heittävät tunnilla.
Teuro kirjoitti:
Olisiko ihan mahdoton ajatus, jos tulostusvaiheessa katsot onko kesä- vai talviaika ja toimit sen mukaan. Siirto UTC ajasta (ainoa fiksu aikamuoto tallennukseen) paikalliseen aikaan ei ole kauhean fiksun kuuloinen. Jos aika vaihtuukin välillä, niin ajat heittävät tunnilla.
Sitten mennään d3 ja javascriptiin, yhtä vaikeeta. Oletin että homma hoituisi jollain ....+3hours tai .....+offset tai ...+%Z mutta ei.
http://korsteeni.com/day1.htm
Ongelmahan tuossa on se, että sivu voidaan ladat jossakin ihan eri aikavyöhykkeellä. Tämä taas aiheuttaa kummastusta, kun aika ei vastaa yhtään mitä käyttäjä on odottanut. UTC ajan tulkitseminen ja tulostuksen yhteydessä laskettu muunnos tuottaa (periaatteessa) oikean tuloksen käyttäjälle.
PHP aikafunktioissa on mainittu dst (daylight saving time), jonka jollakin sopivalla muotoilijalla tuottaa oikean muunnoksen UTC-aikaan nähden. Suoraan en muista miten muunnos meni, mutta time ja date funktioiden kuvaukset ja esimerkit kannattanee lukea.
Teuro kirjoitti:
Ongelmahan tuossa on se, että sivu voidaan ladat jossakin ihan eri aikavyöhykkeellä. Tämä taas aiheuttaa kummastusta, kun aika ei vastaa yhtään mitä käyttäjä on odottanut. UTC ajan tulkitseminen ja tulostuksen yhteydessä laskettu muunnos tuottaa (periaatteessa) oikean tuloksen käyttäjälle.
PHP aikafunktioissa on mainittu dst (daylight saving time), jonka jollakin sopivalla muotoilijalla tuottaa oikean muunnoksen UTC-aikaan nähden. Suoraan en muista miten muunnos meni, mutta time ja date funktioiden kuvaukset ja esimerkit kannattanee lukea.
PHP ei minun tapauksessa ole käyttökelpoinen koska sivut ovat soneran ja siellä ei ole PHP tukea.
Mutta eiköhän tuon 3 tunnin lisäyksen jotenkin saa tuossa tietokannasta (sqlite) lukemisen ja csv tiedoston kirjoittamisen yhteydessä toteutettua tai sitten csv tiedostossa erikseen konvertoida tai sitten......näissä asioissa tuntuu vaihtoehtoja riittävän, löytäisi vaan toimivan.
jolla kirjoitti:
PHP ei minun tapauksessa ole käyttökelpoinen koska sivut ovat soneran ja siellä ei ole PHP tukea.
Mutta eiköhän tuon 3 tunnin lisäyksen jotenkin saa tuossa tietokannasta (sqlite) lukemisen ja csv tiedoston kirjoittamisen yhteydessä toteutettua tai sitten csv tiedostossa erikseen konvertoida tai sitten......näissä asioissa tuntuu vaihtoehtoja riittävän, löytäisi vaan toimivan.
Pelkkä kolmen tunnin lisäys ei suinkaan riitä, vaan sinun tulee tunnistaa vielä kesä- ja talviaika. Eli kesällä 3 tuntia talvella 2 tuntia. Pythonille löytyi tällainen kirjasto. En itse ohjelmoi pythonilla, mutta vaikuttaisi sopivalta tarkoitukseesi.
Stackoverflow sivulta bongasin vielä tällaisen esimerkin, joka saattaisi sopia tarkoitukseesi.
Aihe on jo aika vanha, joten et voi enää vastata siihen.