我正在使用C#。我需要在15分钟(从早上7点到晚上10点)的时间间隔插入数据库。我使用过这段代码:
for (int i = 0; i < 61; i++){
TimeSpan curtime = new TimeSpan(7, y, 00);
y=y+15;}
但这会让我在24小时内退回,即从7:00:00到22:00:00。我怎么能改变这个?
答案 0 :(得分:1)
DateTime column in a database(对于SQL Server)存储为一对四字节数值,其中前4个字节是特定基准时间(1900/1/1)和第二个字节的天数四个字节是从午夜开始的毫秒数
所以,当你谈到format
时,这是你的日期时间值的显示格式,你会看到它的外观,因为从内部格式到字符串的转换是可以理解的被我们。但是在数据库中,日期时间始终以其内部格式存储
因此,为了节省您的时间段,无需准备特殊格式,只需使用当前日期并在每个循环中增加15分钟,并让数据库在其认为合适时存储它
List<DateTime> slots = new List<DateTime>();
DateTime dt = new DateTime(2013, 7, 26, 7, 0, 0);
for (int i = 0; i < 61; i++)
{
// Save in a list
slots.Add(dt);
// Calculate next slot
dt = dt.AddMinutes(15);
}
// Save all the slots to the database
SaveSlots(slots);
显示日期时间
DataTable slots = GetSlotsFromDataBase();
foreach(DataRow r in slots.Rows)
Console.WriteLine(Convert.ToDateTime(r[0]).ToString("hh:mm tt");
答案 1 :(得分:0)
DateTime http://msdn.microsoft.com/en-us/library/system.datetime.aspx结构会很有用,因为TimeSpan http://msdn.microsoft.com/en-us/library/system.timespan.aspx表示的时间间隔不是一天中的某个时间
否则试试这个
var time = DateTime.ParseExact("17:00", "HH:mm", null).ToString("hh:mm tt");
答案 2 :(得分:0)
你可以使用像
这样的东西Datetime.Now.AddMinutes(15)
将您的变量
替换为DateTime.Now答案 3 :(得分:0)
TimeSpan
持续一段时间,如果要以12小时格式格式化输出,则应使用DateTime
(以及DateTime.ToString(String)方法)