Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 带有时间修剪的Now()函数_Ms Access_Ms Access 2007_Vba_Ms Access 2003 - Fatal编程技术网

Ms access 带有时间修剪的Now()函数

Ms access 带有时间修剪的Now()函数,ms-access,ms-access-2007,vba,ms-access-2003,Ms Access,Ms Access 2007,Vba,Ms Access 2003,那么函数=Now()…有没有一种方法可以使用它只获取日期而不获取时间 或者,这个想法只有一个函数吗?有一个。您也可以使用格式$(Now(),“Short Date”)或任何您想要的日期格式。请注意,此函数将以字符串形式返回日期,因此使用Date()是更好的方法。VBA中的日期只是浮点数,其中整数部分表示日期,小数部分表示时间。因此,除了使用tlayton所说的Date函数(获取当前日期)之外,您还可以将日期值转换为整数,从任意日期获取日期部分:Int(myDateValue) 这是我找到的最好的

那么函数
=Now()
…有没有一种方法可以使用它只获取日期而不获取时间


或者,这个想法只有一个函数吗?

有一个。

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

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

这是我找到的最好的。如果已将日期作为字符串,则只需执行以下操作:

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


希望这对其他人有所帮助…

我更喜欢创建一个不使用字符串的函数:

'---------------------------------------------------------------------------------------
' 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

将此函数粘贴到模块中,并像公式一样使用它

Public Function format_date(t As String)
    format_date = Format(t, "YYYY-MM-DD")
End Function
例如,在单元格A1中,应用此公式

=format_date(now())

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

那么我该如何使用它??我可以在VBA中使用=Now()来获取当前日期和时间,但它不允许我输入日期()或=日期()。它会自动删除()并且函数的工作方式似乎与使用的正确函数=Now()Date不同。是的,在代码编辑器中,它将删除()啊,我明白了…我站在正确的位置。把我扔到别的地方去了。抱歉…谢谢!我需要对上述内容做些什么才能获得2010年9月28日的日期格式?谢谢,我很感激!格式$(日期(),“dd-MMM-yy”)。还有返回变量的Format函数。如果您知道需要返回字符串,请使用Format$函数。在代码中,通常可以使用#来括起日期。例如:#2010年9月28日#但是,上述内容可能会被日期格式弄乱,因此另一种选择是dateserial()命令。语法是dateserial(年、月、日),所以dateserial(2010,9,28)哇,谢谢大家!我通过一个简单的问题学到了很多!!我喜欢这样做,因为我是一个有抱负的学生!非常感谢!还可以通过DateValue()函数将日期数据类型从日期的字符串表示形式还原。但这个问题完全是错误的,因为建议使用Format()来获取日期部分。当有一个专门定义的函数只返回整数部分时,为什么会有人这样做?也就是说,为什么要在一个函数调用时调用两个呢?我将Dean的建议理解为理解日期/时间值性质的一种方法,而不是作为
Date()
的一般替代方法。从这个角度来看,我认为他的建议很有用+1.
Public Function format_date(t As String)
    format_date = Format(t, "YYYY-MM-DD")
End Function
=format_date(now())