Formato de data T-Sql para segundos desde a última época/formatação para entrada sqlite

StackOverflow https://stackoverflow.com/questions/11200

  •  08-06-2019
  •  | 
  •  

Pergunta

Eu estou supondo que precisa ser algo como:

CONVERT(CHAR(24), lastModified, 101)

No entanto, não tenho certeza do valor correto para o terceiro parâmetro.

Obrigado!


Bem, estou tentando escrever um script para copiar meu banco de dados do servidor sql para um arquivo sqlite, que é baixado para um aplicativo aéreo, que então sincroniza os dados com outro arquivo sqlite.Estou tendo muitos problemas com datas.Se eu selecionar uma data no ar e tentar inseri-la, ela falhará porque não está no formato correto...mesmo que fosse uma data válida para começar.Decidi tentar experimentar o tempo unix, já que é a única coisa que funcionou até agora.Estou pensando em deixá-los como varchar porque não os classifico de qualquer maneira.

Foi útil?

Solução 3

Acabei usando o formato 120 no MS SQL:

convert(char(24), lastModified, 120)

Cada vez que precisei selecionar uma data no SQLite para fins de não exibição, usei:

strftime(\"%Y-%m-%d %H:%M:%S\", dateModified) as dateModified

Agora só preciso de uma maneira legível/amigável de exibir a data para o usuário!

editar:aceitar a resposta vai para quem me mostrar como exibir bem a data no sqlite; p

Outras dicas

A última época foi em 1970 GMT?

SELECT DATEDIFF(s,'19700101 05:00:00:000',lastModified)

Veja também Data da Época

sqlite> selecione datahora();
2011-01-27 19:32:57

sqlite> selecione strftime('%Y-%m-%d %H:%M:%S','agora');
2011-01-27 19:33:57

REFERÊNCIA:
(Funções de data e hora)[http://sqlite.org/lang_datefunc.html]

Defina "última época".Isso chega perto?

Selecione Cast (lastModified como inteiro)

Se você armazená-los como varchar, armazene-os como AAAAMMDD.Dessa forma, você PODE classificá-los mais tarde, se desejar.

O servidor SQL possui apenas 2 formatos de data à prova de falhas

ISO = AAAAMMDD, execute isto para ver isso

  select convert(varchar(10),getdate(),112)

ISO8601 = aaaa-mm-dd Thh:mm:ss:mmm(sem espaços) execute isso para ver isso

select convert(varchar(30),getdate(),126)

Para saber mais sobre como as datas são armazenadas no SQL Server, escrevi Como as datas são armazenadas no SQL Server?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top