Spanish Ordenar tabla por fecha

Espinosa4

Active Member
Licensed User
Longtime User
Hola a todos,

Estoy intentando ordenar una tabla por fecha pero no lo consigo.

Tengo la siguiente línea:

SQuery = "SELECT * FROM Horas Order By strftime('%dd-%mm-%yyyy',sDia) DESC"


strftime también lo he sustituido por date()
Me podríais ayudar?

Muchas gracias a todos.
Saludos
 

Espinosa4

Active Member
Licensed User
Longtime User
Es de tipo text. Es una tabla sqlite. Las fechas se almacenan como por ejemplo 30-01-2013
 

vcopola

Member
Licensed User
Longtime User
Hola
por partes...
1) Porque ese campo no lo guardas en formato fecha en vez de texto??
A la larga vas a tener menos problemas para todo
2) Lo guardes como tipo fecha o texto a la hora de ordenar no se porque pones toda esa parrafada, simplemente hay que poner el nombre del campo.
Es decir si el campo se llama xfecha por ejemplo la consulta seria
SELECT * FROM Horas Order By xfecha DESC"

No hay que complicarse mas...
Espero te sirva.
Un saludo
 

Espinosa4

Active Member
Licensed User
Longtime User
Pero en sqlite las fechas no se almacenan en texto?

Mira de la página de sqlite

SQLITE 3
1.0 Storage Classes and Datatypes

Each value stored in an SQLite database (or manipulated by the database engine) has one of the following storage classes:

NULL. The value is a NULL value.

INTEGER. The value is a signed integer, stored in 1, 2, 3, 4, 6, or 8 bytes depending on the magnitude of the value.

REAL. The value is a floating point value, stored as an 8-byte IEEE floating point number.

TEXT. The value is a text string, stored using the database encoding (UTF-8, UTF-16BE or UTF-16LE).

BLOB. The value is a blob of data, stored exactly as it was input.

Note that a storage class is slightly more general than a datatype. The INTEGER storage class, for example, includes 6 different integer datatypes of different lengths. This makes a difference on disk. But as soon as INTEGER values are read off of disk and into memory for processing, they are converted to the most general datatype (8-byte signed integer). And so for the most part, "storage class" is indistinguishable from "datatype" and the two terms can be used interchangeably.

Any column in an SQLite version 3 database, except an INTEGER PRIMARY KEY column, may be used to store a value of any storage class.

All values in SQL statements, whether they are literals embedded in SQL statement text or parameters bound to precompiled SQL statements have an implicit storage class. Under circumstances described below, the database engine may convert values between numeric storage classes (INTEGER and REAL) and TEXT during query execution.

1.1 Boolean Datatype

SQLite does not have a separate Boolean storage class. Instead, Boolean values are stored as integers 0 (false) and 1 (true).

1.2 Date and Time Datatype

SQLite does not have a storage class set aside for storing dates and/or times. Instead, the built-in Date And Time Functions of SQLite are capable of storing dates and times as TEXT, REAL, or INTEGER values:

TEXT as ISO8601 strings ("YYYY-MM-DD HH:MM:SS.SSS").

Cuando programaba en delphi sabía ordenar las tablas paradox por lo que quisiera y entiendo que en sqlite también.
 

vcopola

Member
Licensed User
Longtime User
yo utilizo campo date es sqllite......pero bueno
Asun asi has probado a poner que te ordene directamente por el nombre del campo??
 

Espinosa4

Active Member
Licensed User
Longtime User
Gracias vcopola por tu ayuda.
No sabía que se podía poner campos tipo fecha. Desde luego es la mejor opción. Intentaré probar y ya te cuento.

A lo de si había probado a ordenar por el campo si lo hice y no hacía nada. Algo curioso.

Un saludo
 

Espinosa4

Active Member
Licensed User
Longtime User
Hola de nuevo vcopola.

He probado lo de campo date en sqlite y funciona perfectamente!! Infinitas gracias!!!
Si no es demasiada molestia, me podrías indicar qué tipos admite las tablas sqlite o dónde lo puedo ver?

Saludos y un millón de gracias de nuevo.
 
Top