Now()函数带有时间修剪

时间:2010-06-24 01:10:29

标签: vba ms-access ms-access-2007 access-vba ms-access-2003

所以函数=Now() ....是否有一种方法可以使用它并且只获取日期,而不是时间?

还是只有这个想法的功能?

6 个答案:

答案 0 :(得分:23)

答案 1 :(得分:10)

VBA中的日期只是浮点数,其中整数部分代表日期,分数部分代表时间。因此,除了使用Date函数作为tlayton(获取当前日期)之外,您还可以将日期值转换为整数以从任意日期获取日期部分: Int(myDateValue)

答案 2 :(得分:8)

DateValue(CStr(Now()))

这是我发现的最好的。如果您已将日期作为字符串,则可以执行以下操作:

DateValue("12/04/2012 04:56:15")

DateValue(*DateStringHere*)

希望这有助于某人...

答案 3 :(得分:4)

我更愿意制作一个不能用于字符串的函数:

'---------------------------------------------------------------------------------------
' Procedure : RemoveTimeFromDate
' Author    : berend.nieuwhof
' Date      : 15-8-2013
' Purpose   : removes the time part of a String and returns the date as a date
'---------------------------------------------------------------------------------------
'
Public Function RemoveTimeFromDate(DateTime As Date) As Date


    Dim dblNumber As Double

    RemoveTimeFromDate = CDate(Floor(CDbl(DateTime)))

End Function

Private Function Floor(ByVal x As Double, Optional ByVal Factor As Double = 1) As Double
    Floor = Int(x / Factor) * Factor
End Function

答案 4 :(得分:3)

您还可以使用Format $(Now(),“Short Date”)或您想要的任何日期格式。请注意,此函数会将Date作为字符串返回,因此使用Date()是一种更好的方法。

答案 5 :(得分:0)

将此功能粘贴到您的模块中,并将其用作公式

Public Function format_date(t As String)
    format_date = Format(t, "YYYY-MM-DD")
End Function

例如在单元格A1中应用此公式

=format_date(now())

它将以YYYY-MM-DD格式返回。根据您的意愿更改任何格式(年月日期)。