这可能是一个非常简单的问题/答案,但我找不到适当的信息或以其他方式误解它。我想在 Azure SQL DB 中以简单的“YYYY-MM-DD”格式保存日期。
我正在使用以下命令:
CREATE TABLE ExampleDates (ExampleDate DATE);
INSERT INTO ExampleDates (ExampleDate) VALUES ('2024-02-28');
SELECT * FROM ExampleDates;
结果如下:
示例日期 |
---|
2024-02-28T00:00:00.0000000 |
我希望使用 DATE 类型列将数据保存为 2024-02-28 而不是 2024-02-28T00:00:00.0000000。这是预期的结果格式吗?我如何将其保存为 2024-02-28?
要获取所需格式的输出
yyyy-MM-dd
,您可以使用以下查询:
SELECT CONVERT(VARCHAR(10), ExampleDate) AS ExampleDate FROM ExampleDates;
查询使用
CONVERT()
函数,它将值(任何类型)转换为指定的数据类型。
输出:
是的,正如Thom所说,
date
和time
没有格式,它们是二进制值。表示层决定如何显示输出。因此,最好使用应用程序代码将 date
转换为所需的格式。下面的代码是一个.NET
应用程序代码,它以所需的格式显示日期,如下面的输出所示:
using System;
using System.Data.SqlClient;
class Program
{
static void Main()
{
string connectionString = "******";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
string sql = "SELECT ExampleDate FROM ExampleDates;";
SqlCommand command = new SqlCommand(sql, connection);
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
DateTime exampleDate = reader.GetDateTime(0);
string formattedDate = exampleDate.ToString("yyyy-MM-dd");
Console.WriteLine("Formatted Date: " + formattedDate);
}
reader.Close();
}
}
}
输出:
Formatted Date: 2024-02-28