第二个说法不对,如果是eaten过去分词要用完成时.
Have you eaten dinner?
我见的Have you had dinner比较多.
如果是日常对话应该没什么区别,完成时只是有点强调对现在的影响.