IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Převod času na desetinné číslo

V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
zlata.smidova:5.5.2017 9:24

Ahoj,

potřebovala bych poradit se SQL dotazem, který převede formát date na desetinné číslo. V tabulce (table) mám sloupeček pojmenovaný time, kde jsou časy, např. ve tvaru 01:48:00.000000 (formát TIME). Potřebovala bych dostat číslo - nejlépe v minutách (například 108,00).

Děkuji za pomoc

 
Odpovědět
5.5.2017 9:24
Avatar
shaman
Člen
Avatar
shaman:5.5.2017 9:39
SELECT CEIL(TIME_TO_SEC(`time`)/60) as minutes FROM table;

Pouzi funkciu time_to_sec ktora ti vrati pocet sekund, to potom vydelis 60 sekundami aby si mala pocet minut a potom zaokruhlis.

Nahoru Odpovědět
5.5.2017 9:39
try {...} catch (Exception ignored) { echo " ¯\_(ツ)_/¯ "; }
Avatar
plelovsky
Člen
Avatar
plelovsky:5.5.2017 9:48

Záleží na databázi. U MS SQL Serveru lze použít funkci DATEDIFF https://msdn.microsoft.com/…sql.90).aspx
DATEDIFF(minute, 0, time)

 
Nahoru Odpovědět
5.5.2017 9:48
Avatar
Odpovídá na shaman
zlata.smidova:5.5.2017 10:14

Děkuju, mám ale problém, když zadám:

SELECT TIME_TO_SEC(01:48:00.000000)
napíše mi to: no such column: 01:48:00.000000: SELECT TIME_TO_SEC(01:48:00.000000)

když to zadám bez uvozovek, tj. SELECT TIME_TO_SEC(01­:48:00.000000)
napíše mi to: near ":48": syntax error:

nevíš, kde je problém?

 
Nahoru Odpovědět
5.5.2017 10:14
Avatar
zlata.smidova:5.5.2017 10:26

Databáze by měla být SQLite

 
Nahoru Odpovědět
5.5.2017 10:26
Avatar
Odpovídá na zlata.smidova
Nikola Sterziková (PaNika):5.5.2017 12:14

Tipuju, že funkce TIME_TO_SEC na SQLite neexistuje. Pravděpodobně je to funkce na MySql (na MSSQL také taková funkce není).
Zkus tento odkaz, nečetla jsem to, ale otázka zní stejně, jako tvoje:
http://stackoverflow.com/…-with-sqlite

 
Nahoru Odpovědět
5.5.2017 12:14
Avatar
zlata.smidova:5.5.2017 13:12

Všem děkuju za pomoc :-)
Nakonec jsem svůj problém vyřešila takto: SELECT (strftime('%s',(SE­LECT time FROM table))

 
Nahoru Odpovědět
5.5.2017 13:12
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.