Very interesting. I don't use these smartlinks much, and never noticed they don't work as you'd want.
It's actually easy to fix them, if you can ask someone on your build team to do so.
For .IOBRIEF, the fourth parameter in the smartlink code is the start time. if blank (which is the default), the smart link uses the current time and looks back 24 hours. So, if you want the 7AM - 7AM I/O, it works just fine at 7AM. But if you write your note at 10AM, you'll get a 10AM - 10AM I/O. This can be fixed by setting that fourth parameter to whatever standard start time you want. If it's set to 7AM, then anytime the smartlink is used after 7AM today, it will report 7AM yesterday - 7AM today. But if you write a note at 6AM, then you'll get 7AM two days ago to 7AM yesterday. So choose your start time wisely.
For .IODETAILS, the solution is somewhat similar. The fifth parameter is "lookback intervals". This smartlink uses "shifts" instead of hours. We have three I/O shifts -- 7A - 3P, 3P - 11P, and 11P - 7A. The smartlink always shows the current shift, and then the rest of the shifts for the day (which are of course blank, since they haven't happened yet. Which is dumb). If left blank (which is the default), then the first shift of the day is shown. So if you use it at 10A for a note, all you'll get is the I/O from 7A - 10A. But we can set the lookback to the number of shifts prior to today that you want -- so in our case, if set to 3, you'd get all of yesterday's I/O, plus anything today also, all in a table. You can't get more than 24 hours, even if you set the lookback to more than the number of shifts in 24 hours.
Both tweaks are easy to do for a builder. There's no way to override them yourself, I looked at the raw code.