You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:30:55