在ASP.NET、VB.NET与MS Access中提取时间戳的时间部分
嘿,我来帮你搞定这个小问题!你已经能保存完整的日期时间戳了,现在只需要提取时间部分就行,给你两种实用的方案,看哪种适配你的场景:
方案1:在VB.NET代码中处理时间部分
你可以在点击保存按钮的事件里,直接提取当前时间的时间部分,再传给Access数据库:
方式1:获取Time类型的时间值(适合Access的Time字段)
如果你的Access表中对应的字段是Time类型,直接用DateTime.Now.TimeOfDay就能得到纯时间的DateTime对象:
Protected Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click ' 获取当前时间的纯时间部分 Dim currentTime As DateTime = DateTime.Now.TimeOfDay ' 后续将currentTime作为参数传给Access的插入/更新语句即可 ' 示例参数赋值(假设用OleDbCommand) Dim cmd As New OleDb.OleDbCommand("INSERT INTO 你的表名(时间字段) VALUES (@Time)", yourConnection) cmd.Parameters.AddWithValue("@Time", currentTime) cmd.ExecuteNonQuery() End Sub
方式2:格式化时间为字符串(适合Access的Text字段)
如果你的字段是文本类型,就用ToString指定时间格式,比如HH:mm:ss(24小时制)或者hh:mm:ss tt(12小时制带AM/PM):
Protected Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click ' 格式化当前时间为纯时间字符串 Dim timeString As String = DateTime.Now.ToString("HH:mm:ss") ' 传给数据库 Dim cmd As New OleDb.OleDbCommand("INSERT INTO 你的表名(时间字段) VALUES (@TimeStr)", yourConnection) cmd.Parameters.AddWithValue("@TimeStr", timeString) cmd.ExecuteNonQuery() End Sub
方案2:在Access数据库层面直接生成时间部分
你也可以直接在Access的SQL语句里用内置函数生成纯时间,不用在VB.NET里处理:
使用Time()函数(适合Time类型字段)
Access的Time()函数会直接返回当前系统时间(不含日期),插入语句这样写:
INSERT INTO 你的表名(时间字段) VALUES (Time());
使用Format()函数(适合Text类型字段)
如果字段是文本,用Format()把完整时间转成纯时间字符串:
INSERT INTO 你的表名(时间字段) VALUES (Format(Now(), "HH:mm:ss"));
小提示
建议把Access表中的时间字段类型改成Time,而不是DateTime,这样专门存储时间数据,既节省空间,后续处理也更省心~
内容的提问来源于stack exchange,提问作者Yahyaotaif
相关产品推荐
相关产品推荐

