Link to home
Start Free TrialLog in
Avatar of damoncwk
damoncwk

asked on

access stored date/time field failed

Hi,
I am using R5 and I have a field of date/time type.
after that want to retrieve the month and year value from that field
I use
@month(field1) + @year(field1) but it failed
but when i try @month(@Now)) then is is okay
so i guess it is stored as a string.

I searched the help in R5 and it says CDat can be used
to convert String to Date but turns out R5 says it is invalid.

Avatar of HemanthaKumar
HemanthaKumar

Try @TextToTime

~Hemanth
cdat should be used in lotus script

use @Month(@TextToTime(field1))+@Year(@textToTime(field1))
1 minute difference hemantha.
Still ur awake? By this time u should be finishing ur dinner and sleeping.

Take good rest.

~madheeswar
Just waiting for you to grab these questions ;-)

Just Kidding.. Got some new updates going tonight...
OK. I want to grab all the questoins which I am able to answer.Since my knowledge is limited.

have a good sleep.

Bye,
madheeswar
Good spirit... keep it up.
Avatar of Zvonko
Check this:

FIELD field1:=field1;
@Text(field1;"D3S0")



Zvonko,
he needs Month and year.

taking permission from Zvonko,
FIELD field1:=field1;
res:=@Text(field1;"D3S0");
@Month(res)+@Year(res)
If I am not wrong, u want to concatenate both month and year of field1.

So, i propose,

FIELD field1:=field1;
res:=@Text(field1;"D3S0");
@text(@Month(res))+@text(@Year(res))


Avatar of damoncwk

ASKER

Hi,
After I use
@Month(@TextToTime(field1))+@Year(@textToTime(field1))
it returns -2

somehow i found out that TextToTime(field1) returns null.

However if I only use field1 then the date/time value is shown correctly.
FIELD field1:=field1;
@Month(@TextToTime(field1))+@Year(@textToTime(field1))

What u want?
FIELD field1:=field1;
@Month(@TextToTime(field1))+@Year(@textToTime(field1))

i tried the above
but it turns out TextToTime returns null
and actually the value of field1 is set to @Now

where u are displaying this end result?

And refresh the document.

and also since ur using @Now in field1, then why can't u implement it directly instead of field1?

and create any date field and give the date and refresh insead of having field1 in the formula.
in a form I have the field1 which stores @Now that the user fills in the form
then in a View I create a column which have formula of
@Month(@TextToTime(field1))
however it returns nothing for @TextToTime(field1)
may be some where while saving or at Querysave ur removing it.

create a new computed field (this will refresh everytime) or Computed when composed(this won't refresh, so use this)
and assign the formula @now in default. name it as createdon_d. it should be a text field.

and save a new document.

and in column formula:
@Text(@Month(@TextToTime(createdon_d)))+"-"+@text(@Year(@textToTime(createdon_d)) )

this should work.

and if it is not displaying, then in the doc., properties, chec the value of createdon_d. it should display some value.
madheeswar,
you are allowed to extend my example, but not to extend it in wrong direction!
In your example is "res" of type Text, so you cannot get @Month(res)

And beside that is the whole formating NOT necessary. The format string "D3S0" yields Month and Year!

In the view, select the document, and open the document properties.  See if field1 is there, and what the value is, and the type (should be DATE TIME or something similar).

If that exists, it should work.

To format your time , you can use @text.  In your case:

@text(field1;"D3")

You can also do the formatting yourself , the check will avoid errors when field1 is empty.

@if(field1="";"No field1 in document";
@right("00"+@text(@month(field1));2)+"/"+@text(@year(field1)))

No check , but a default for field1 is also possible

DEFAULT field1 := @now;
@right("00"+@text(@month(field1));2)+"/"+@text(@year(field1))

cheers,

Tom

ASKER CERTIFIED SOLUTION
Avatar of Zvonko
Zvonko
Flag of North Macedonia image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
So the formatting was already mentioned by Zvonko , sorry, missed that.
He is right, it's only 1 line of code

Tom
And in his example, change this to :

DEFAULT field1:=@Now;
@Text(field1;"D3S0")

So that, when field1 is empty (only when field1 is empty), it is replaced by @now.

BTW, be careful when using this (or any time function) in a view, because this will slow down the view  - it will have to be recalculated every time it's opened !

cheers,

Tom
Why the grading B???
Zvonko,
may be he/she is not satisfied.



damoncwk,
if you are not satisfied with the answer, you should have asked what you need and what is not working. Instead you took the code what Zvonko provided and given a grade "B" which is not encouraging for us. we kept lot of efforts in answering your question. try to understand.

Please a question in community support with this link and tell them to change to grade "A". It is free(0 points)