Convierte una date en una cadena en Sqlite

¿Hay alguna forma de convertir una date en una cadena en Sqlite? Por ejemplo, estoy tratando de get la date mínima en Sqlite:

SELECT MIN(StartDate) AS MinDate FROM TableName 

Sé en SQL Server que utilizaría el SQL a continuación para lograr lo que estoy tratando de hacer:

 SELECT CONVERT(VARCHAR(10), MIN(StartDate), 101) AS MinDate FROM TableName 

¡Gracias!

Prueba esto:

 SELECT MIN(DATE('your-date-here')) as MinDate FROM TableName 

Y asegúrese de que su date aquí siga un formatting bien entendido por SQLite (Consulte la sección de Time String en la documentation)

SQLite no tiene un tipo de date. Lo que CURRENT_TIMESTAMP realmente devuelve es una cadena con el formatting YYYY-MM-DD HH:MM:SS . Las funciones de formateo / cálculo de date / hora aceptan cadenas en este formatting, o alternativamente, numbers, que se interpretan como dates julianas a less que use el modificador 'unixepoch' .

Por lo tanto, "convertir una date en una cadena" depende de cómo se almacenan las dates:

  • Si las almacena como dates julianas, use DATE(YourDateColumn) .
  • Si los almacena como times Unix, use DATE(YourDateColumn, 'unixepoch') .
  • Si los está almacenando como cadenas ISO 8601, entonces, no tiene que hacer nada. A less que desee una cadena en un formatting diferente, en cuyo caso debe usar la function STRFTIME .
  • Si los está almacenando como algún otro formatting de cadena, realmente debería considerar usar uno de los formattings admitidos para que pueda usar las funciones de date / hora.

En los tres formattings de date, el order cronológico es el mismo que el order lexicográfico, por lo que la function MIN funciona como se esperaba.

¡¡testing esto!!

  SELECT * FROM Table WHERE strftime('%Y-%m-%d',CreatedAt) BETWEEN '2014-10-07' AND '2014-10-17'